1

ホットオアノットシステムを使用して、ユーザーに最大30個のアイテムのリストを並べ替えてもらいたいと思っています。リストは定義された小さな数であり、単一のユーザーのみがソートする必要があります。ソートされたリストをユーザーにドラッグドロップさせることもできますが、ホットオアノットシステムの方が適しています。

少し調べてみると、ELOレーティングが最速のオプションのようです。

このPHPクラスを使用するにはどうすればよいですか?https://github.com/Chovanec/elo-rating

4

1 に答える 1

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レーティングシステムの基本的なセットアップです。これを関数に書き直すこともできます。

これがお役に立てば幸いです

于 2012-10-22T13:57:44.290 に答える