Рейтинг игроков, рейтинг Эло. Немного математика есть в каждом Оо
05.09.2009, 22:49
Ссылка на официальный ман по рейтингу эло — Рейтинг Эло.
Применим на практике?
Допустим, у нас 2 команды с рейтингами:
$rating_a = 800;
$rating_b = 500;
Расчитаем вероятность победы первой команды:

$e = 1/(1+pow(10, ($rating_b-$rating_a)/400));
Дальше опишу простую функцию для расчета коэффициена, необходимого для участия в финальном рейтинге:
function EloK($rating)
{
if ($rating >= 2400) {
return(10);
}
elseif ($rating >= 1000) {
return(15);
}
else {
return(25);
}
}
Простая хуйня, иллюстрирующая, что значение равно 10 для сильнейших команд (рейтинг от 2400), 15 — для команд с рейтингом меньше чем 2400 и 25 — для новичков.
Ну и получим новый рейтинг по самой формуле:

$new_rating_a = $rating_a + EloK($rating_a) * (1 - $e);
$new_rating_b = $rating_b + EloK($rating_b) * (0 - (1-$e));
print $new_rating_a;
print ' / ';
print $new_rating_b;
Результат:
803.77448893 / 496.22551107
Вот такие пироги. Да, будет введено на Live-CS…