私は非常にシンプルです。
//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レーティングsystumのための基本的なセットアップ クラスよりもそのはるかに簡単。 これを関数にすることもできます。
これが役に立ちます。
出典
2012-10-22 13:57:44
tgb