Блог пользователя Temirulan

Автор Temirulan, история, 9 лет назад, По-русски

В нашем вузе как и у многих каждый год проводится подготовка к очередному ACM-сезону. В качестве подготовки мы пишем командные и личные контесты по правилу ACM-ICPC, а также участвуем в регулярных Codeforces, topcoder раундах. Только вот не знаем как составлять общий рейтинг участников, хотелось бы чтоб рейтинг учитывал соревнования разного типа. Посоветуйте какой-нибудь метод подсчета?

  • Проголосовать: нравится
  • +9
  • Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится +10 Проголосовать: не нравится

Можете взять какую-то систему, где баллы начисляются в зависимости от занятого места (текущую или любую из прошлых версий из MotoGP, Formula 1, кубка мира по биатлону, да даже GP30 Опенкапа — что вам там больше подходит) и банально суммировать результаты по каждому контесту, составляя список только по участникам из вашего вуза. Можно еще разным контестам какие-то множители дать, в зависимости от важности.

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Полностью поддерживаю!

    То же самое бы посоветовал — биатлонная система с учетом коэффициента важности соревнования. Приходилось уже такое использовать (не в тренировках по программированию, правда), неплохо себя зарекомендовало.

    Если проблема самому распределить очки за места (сколько давать за первое, а сколько за пятое), то тут может помочь какая-нибудь банальная формула.

    Когда я использовал что-то подобное для очковой зоны из N участников, с задачей спокойно справлялась формула:

    очки = (N+1-занятое место)^2 — при попадании в очковую зону (в противном случае — 0 очков, естественно)

    Тогда, например, при 10 участниках, тройка лидеров получит 100, 81 и 64 очков соответственно, пятое место — 36 очков, а замыкающий топ-10 — всего 1 очко. Вполне адекватно, я считаю :)