dollar
@dollar
Делай добро и бросай его в воду.

Как можно выбрать главные числа?

Есть массив чисел случайной длины. Чем больше число, тем оно главнее. Как выбрать несколько самых главных?

Например, у сотрудника (или соискателя) есть ряд навыков, которые уже измерены в процентах владения ими. Нужно выделить ключевые навыки.

Взять первые N не совсем подходит. Вот примеры:
  • физика 50%, химия 49%, биология 48%, английский 10% -----> главные будут физика, химия, биология.
  • физика 50%, химия 9%, биология 8%, английский 7% -----> главным будет только физика.
  • физика 50%, химия 49%, биология 49%, английский 48% -----> главными будут физика и химия.
  • физика 50%, химия 30%, биология 1%, английский 1% -----> главными будут физика и химия.
  • физика 50%, химия 30%, биология 30%, английский 30% -----> главным буде только физика.

Сложно сказать, какой здесь принцип.
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега Алгоритмы
♬♬
Находить среднее и брать навыки, которые выше среднего = (сумма указанных процентов) / количество?
Поскольку порядок тоже имеет значение, при равных процентах считать весомее более ранний навык.
С количеством в выборке уже решать вручную: сколько взять навыков из 10 по 100% каждый.

физика 50%, химия 49%, биология 48%, английский 10% -----> главные будут физика, химия, биология.
(50+49+48+10)/4 = 39.25 – выше желаемые три: физика, химия, биология. ОК

физика 50%, химия 9%, биология 8%, английский 7% -----> главным будет только физика.

(50+9+8+7)/4 = 18.5, выше только физика, ОК

физика 50%, химия 49%, биология 49%, английский 48% -----> главными будут физика и химия.
(50+49+49+48)/4 = 49FAIL
Тут не понятно, почему разорвать именно химию и биологию. Но если перед вычислением добавлять коэффициент за позицию [+3, +2, +1, +0], всё получается:
(53+51+50+48)/4 = 50.5 рвёт точно как хотелось: физика и химия выше. OK

физика 50%, химия 30%, биология 1%, английский 1% -----> главными будут физика и химия.

(50+30+1+1)/4 = 20.6физика и химия FTW. OK

физика 50%, химия 30%, биология 30%, английский 30% -----> главным буде только физика.
(50+30+30+30)/4 = 35; выше 35 только физика. ОК
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы