Дан массив из 20 случайных чисел от 1 до 10. Вывести в консоль самое часто встречающееся число или список чисел. Пример: [1, 2, 6, 5, 3, 2, 7]
Самое частое число - 2

menoralle menoralle    3   17.04.2021 11:19    1

Ответы
ebanat3 ebanat3  17.05.2021 11:19

Рассмотрим решение на языке Python

Объяснение:

Первый

Отсортируем имеющийся список как показано.

Получим кортеж, где есть два значения: key и value.

Первое число - собственно, элемент. Второе число - количество раз.

Второй

Создадим словарь и будем считать количество элементов.

Выведем второй элемент кортежа максимального значения

Третий

Создадим словарь, множество, список ключей.

Как и во втором , пройдемся по элементам и будем увеличивать счетчик на 1.

Выведем с метода format, чтобы было красиво.

Четвертый

Самый простой, и тем не менее, правильно работающий. Используем библиотеку collections, откуда возьмем тип данных Counter - словарный тип, используемый для подсчета объектов.


Дан массив из 20 случайных чисел от 1 до 10. Вывести в консоль самое часто встречающееся число или с
Дан массив из 20 случайных чисел от 1 до 10. Вывести в консоль самое часто встречающееся число или с
ПОКАЗАТЬ ОТВЕТЫ
katerina344 katerina344  17.05.2021 11:19

Приведу пример на Haskell.

import Data.List (group, groupBy, sort, sortBy, unfoldr)import Data.Function (on)import System.RandomgetFreq :: [Int] -> [Int]getFreq xs = last $ [[fst zs | zs <- ys] | ys <- groupBy ((==) `on` snd) . sortBy (compare `on` snd) $ [(head x, length x) | x <- group . sort $ xs]]randomList :: Int -> (Int, Int) -> IO [Int]randomList 0 _ = return []randomList n range = do  r  <- randomRIO range  rs <- randomList (n-1) range  return (r:rs)  main :: (Int, Int) -> IO()main range = do  rs <- randomList 20 range  print rs  print $ getFreq rs

Здесь алгоритм поиска наиболее часто встречающихся чисел последовательности реализован в функции getFreq. В ней мы исходный массив сортируем и группируем соседние элементы по значению. Затем формируем список из кортежей (число, частотность) и сортируем по возрастанию частотности. Затем группируем соседей по частотности, выделяем только значения, без указания частотности и берем последний элемент – самая большая частотность. Этот элемент – список из самых часто встречающихся элементов.


Дан массив из 20 случайных чисел от 1 до 10. Вывести в консоль самое часто встречающееся число или с
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика