Другие языки программирования и технологии

Найти самые частые 4 числа в массиве

Здравствуйте! помогите пожалуйста, можно на любом языке программирования)
В общем есть текстовый файл формата:
3 5 9 10 15 16 18 22 23 24 32 34 44 41 45 48 67 68 70 75
3 5 10 19 22 27 29 40 43 44 46 52 53 55 58 66 68 70 73 75
3 5 6 10 13 15 17 18 25 27 30 32 42 44 47 54 57 71 72 76
2 4 6 15 20 21 22 29 34 35 38 43 46 49 60 63 69 73 74 78

Как можно найти 4 числа (чтобы все присутствовали в строке), которые чаще всего повторяются в строках?
т. е. на этом примере видно, что в строках часто повторяются 3,5,10,44.
Алексей Дыбань
Алексей Дыбань
56 712
Лучший ответ
Денис Савицкий Спасибо! но тут во второй строке нет 15, а он выводит 3,5,10,15, видимо ищет частые цифры во всех строках и просто выводит их. А надо чтобы все 4 цифры присутствовали в одной стоке.
И как мне сделать, чтобы читал из файла? А то у меня несколько тысяч строк в файле :)
15 также часто встречается как и 44. Видно что массив чисел не превышает число 99, значит создаем массив из 99 целых положительных чисел и делаем их равных нулю.
(для си++)
unsigned arrayOfCount[100] = {}; // делаю массив из 100 целых чисел, потому что индекс последнего будет равным 99

потом пробегаясь по массиву увеличиваем наш массив на один по индексу значения двумерного массива. Таким образом получим количество чисел и потом сможем найти максимумы чисел.

for(size_t i = 0; i < N; ++i)
{
for(size_t j = 0; j < M; ++j)
{
size_t temp = array1[i][j]; //array1 - это ваш двумерный массив из задачи
arrayOfCount[temp]++; //увеличиваем на один количество а само число, это индекс
}
}

После этого находим максимум и индекс и будет числом, которое встречается наиболее часто. Для 4 чисел максимум обнуляете, перед этим сохранив его, и находите снова максимум и так 4 раза.
Волхв Борей .
Волхв Борей .
15 408
Денис Савицкий Я просто задание не всё написал ( Нужно чтобы все 4 числа присутствовали в строке
Программа для обработки произвольного количества файлов, содержащих массивы целых 64 разрядных знаковых чисел. Пример работы для вашего массива:
#--------------------------------
Обрабатываем файл 'array.txt':
Частота встречи чисел в массиве:
Частота встречи числа 2 в массиве: 1 раза
Частота встречи числа 3 в массиве: 3 раза
Частота встречи числа 4 в массиве: 1 раза
Частота встречи числа 5 в массиве: 3 раза
Частота встречи числа 6 в массиве: 2 раза
Частота встречи числа 9 в массиве: 1 раза
Частота встречи числа 10 в массиве: 3 раза
Частота встречи числа 13 в массиве: 1 раза
Частота встречи числа 15 в массиве: 3 раза
Частота встречи числа 16 в массиве: 1 раза
Частота встречи числа 17 в массиве: 1 раза
Частота встречи числа 18 в массиве: 2 раза
Частота встречи числа 19 в массиве: 1 раза
Частота встречи числа 20 в массиве: 1 раза
Частота встречи числа 21 в массиве: 1 раза
Частота встречи числа 22 в массиве: 3 раза
Частота встречи числа 23 в массиве: 1 раза
Частота встречи числа 24 в массиве: 1 раза
Частота встречи числа 25 в массиве: 1 раза
Частота встречи числа 27 в массиве: 2 раза
Частота встречи числа 29 в массиве: 2 раза
Частота встречи числа 30 в массиве: 1 раза
Частота встречи числа 32 в массиве: 2 раза
Частота встречи числа 34 в массиве: 2 раза
Частота встречи числа 35 в массиве: 1 раза
Частота встречи числа 38 в массиве: 1 раза
Частота встречи числа 40 в массиве: 1 раза
Частота встречи числа 41 в массиве: 1 раза
Частота встречи числа 42 в массиве: 1 раза
Частота встречи числа 43 в массиве: 2 раза
Частота встречи числа 44 в массиве: 3 раза
Частота встречи числа 45 в массиве: 1 раза
Частота встречи числа 46 в массиве: 2 раза
Частота встречи числа 47 в массиве: 1 раза
Частота встречи числа 48 в массиве: 1 раза
Частота встречи числа 49 в массиве: 1 раза
Частота встречи числа 52 в массиве: 1 раза
Частота встречи числа 53 в массиве: 1 раза
Частота встречи числа 54 в массиве: 1 раза
Частота встречи числа 55 в массиве: 1 раза
Частота встречи числа 57 в массиве: 1 раза
Частота встречи числа 58 в массиве: 1 раза
Частота встречи числа 60 в массиве: 1 раза
Частота встречи числа 63 в массиве: 1 раза
Частота встречи числа 66 в массиве: 1 раза
Частота встречи числа 67 в массиве: 1 раза
Частота встречи числа 68 в массиве: 2 раза
Частота встречи числа 69 в массиве: 1 раза
Частота встречи числа 70 в массиве: 2 раза
Частота встречи числа 71 в массиве: 1 раза
Частота встречи числа 72 в массиве: 1 раза
Частота встречи числа 73 в массиве: 2 раза
Частота встречи числа 74 в массиве: 1 раза
Частота встречи числа 75 в массиве: 2 раза
Частота встречи числа 76 в массиве: 1 раза
Частота встречи числа 78 в массиве: 1 раза
#--------------------------------
Язык программирования Rust, код хорошо закомментирован
Исходный код: https://pastebin.com/Kc0UrqM7
Timur Sabetkanov
Timur Sabetkanov
9 624
Timur Sabetkanov Чтобы найти именно 4 наиболее часто встречающихся числа необходима небольшая доработка кода. Фактически строится ТОП, и просто берется его верхняя часть. Я как-то позабыл про это условие, пока писал программу :)
Денис Савицкий ничего себе, это вы за несколько минут 120 строк кода написали?) Спасибо!!!
Денис Савицкий спасибо огромное!!!)
2 4 8 12 24
Все они чётные.

Похожие вопросы