2016-01-18 11 views
-2

На основе массива:Рубин - Максимальное число с самой высокой частотой

arr = [1, 1, 1, 2, 2, 2, 3, 3, 3, 10] 

Я хотел бы получить ответ , потому что это самый высокий показатель с самой высокой частотой.

Я знаю, как получить максимальную частоту:

arr.max_by { |i| arr.count(i) } 

И знаете, как получить наибольшее количество:

arr.max 

Дело в том, как совместить оба.

Дело в том, что мне нужно знать, каков текущий раунд в турнире, и для каждого матча у меня есть соответствующий раунд, но иногда матч последних раундов воспроизводится до (раунд 10 в примере массива), поэтому Я просто не могу получить наибольшее число.

+1

Вы ищете медианную. что ты уже испробовал? –

+6

Фактически, номер 1 имеет самую высокую частоту в вашем примере. – eugen

+0

Я добавил дополнительную информацию @bub –

ответ

1

В этом случае ваш ответ может быть arr.max_by { |i| [arr.count(i), i] }.

Смежные вопросы