ELO评级为简单的热或不排序?

时间:2012-05-03 01:45:13

标签: php sorting

我希望让用户使用热系统或非系统对大约30个项目进行排序。该列表是一个小的定义数字,只需要由单个用户排序。我可以让用户拖放一个排序列表,但是热门系统会更好。

从一些研究来看,ELO评级似乎是最快的选择。

我如何使用这个PHP类? https://github.com/Chovanec/elo-rating

1 个答案:

答案 0 :(得分:0)

我会写自己的非常简单。

//first i calculate the win probability.
$a_win_prob = 1/(1+pow(10,($b_elo - $a_elo)/400));
$b_win_prob = 1/(1+pow(10,($a_elo - $b_elo)/400));

//than i make a K value for a and b
if($a_elo < 2100){
    $a_k = 20;  
}elseif($a_elo > 2300){
    $a_k = 10;
}else{
    $a_k = 15;  
}

if($b_elo < 2100){
    $b_k = 20;  
}elseif($b_elo > 2300){
    $b_k = 10;
}else{
    $b_k = 15;  
}

//than i calculate both elo values.
if($win_side === "a"){
    $a_elo_new = $a_elo + $a_k*(2*$a_win_prob);
    $b_elo_new = $b_elo - $b_k*(2*$b_win_prob);
}else{
    $a_elo_new = $a_elo - $a_k*(2*$a_win_prob);
    $b_elo_new = $b_elo + $b_k*(2*$b_win_prob);
}
//than i can put them in a database

这是我对elo评级系统的基本设置 它比班级简单得多。 你甚至可以把它重写成一个函数。

我希望这会有所帮助