Построение рейтинга на основе ценности

Во многих соревновательных мероприятиях часто принято строить рейтинги - игроков, команд, техники, алгоритмов & etc ... При этом место в рейтинге определяется (будем называть "ценностью") участника. И вот тут самое интересное. Кто и как определяет ценность? В одних рейтингах просто делят количество побед к поражениям, в других - учитывают и полосу непрерывных побед. В общем, кто на что горазд. Но что стоит участник, который выиграл у всех, у которых нуль побед? Что стоят его победные очки для рейтинга? Наверное же нужно не просто учитывать сколько выиграл, но и кого?!

Вопрос

Есть "синтетический" пример, более упрощенный, чем обычно это происходит в жизни. Нужно найти алгоритм вычисления наиболее адекватной ценности участника соревнований. Алгоритм можно записать на любом языке программирования, главное - привести словесное описание и доводы, почему именно так, а не иначе.

Синтетический пример

Есть участники соревнований [A,B,C,D,E,F,G]. В результате соревнований каждый участник встретился с каждым два раза, выиграл или проиграл. Ничьих нет. Ценность нужно определить в диапазоне дробных чисел 1.0 - 0.0, где наиболее ценный получает 1.0, а наименее ценный 0.0. Таблица результатов встреч такова:

Таблица результатов

PS. В реальности все гораздо сложнее - участники могут вообще не встречаться на момент составления рейтинга, или встречаться гораздо больше, чем два раза.


Ответы (1 шт):

Автор решения: Kromster

Почитайте про рейтинг ELO - он используется в шахматном мире. Это метод расчёта относительной силы игроков в играх, в которых участвуют двое игроков (например, сёги, го или шахматы).

Также, может быть вам пригодятся другие Спортивные рейтинги

→ Ссылка