Здравствуйте! помогите пожалуйста, можно на любом языке программирования)
В общем есть текстовый файл формата:
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.
Другие языки программирования и технологии
Найти самые частые 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 раза.
(для си++)
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 раза.
Денис Савицкий
Я просто задание не всё написал ( Нужно чтобы все 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
#--------------------------------
Обрабатываем файл '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
Чтобы найти именно 4 наиболее часто встречающихся числа необходима небольшая доработка кода. Фактически строится ТОП, и просто берется его верхняя часть. Я как-то позабыл про это условие, пока писал программу :)
Денис Савицкий
ничего себе, это вы за несколько минут 120 строк кода написали?) Спасибо!!!
Денис Савицкий
спасибо огромное!!!)
2 4 8 12 24
Все они чётные.
Все они чётные.
Похожие вопросы
- Простая задачка для программистов: Как найти самый частый элемент массива?
- Помогите найти алгоритм подбора множителей к числам заданного массива, сумма произведений которых равна заданному числу
- дан двумерный массив С(3,4).Получите новый массив А путём увеличения всех элементов исходного массива на число С.
- Помогите найти все возможные вариации положительных и отрицательных чисел в массиве.
- Разделить массив с числами на несколько массивов, чтобы сумма чисел в массивах была равна.
- Ассемблер. В заданном массиве целых чисел найти самую большую серию подряд стоящих чётных элементов.
- Как получить нужное число из суммы нескольких чисел в массиве?
- Из массива JJ(100) в массив NN(100) перенести числа(элементы массива): сначала нечетные, а затем четные.
- Помогите :) Дан массив из n целых чисел. Найти количество встречающихся равных чисел.
- Составить программу С++ В массиве целых чисел с количеством элементов n найти наиболее часто встречающееся число
И как мне сделать, чтобы читал из файла? А то у меня несколько тысяч строк в файле :)