我從PHPClasses網站獲得了以下ELO類。PHP Facemash ELO評級分類/功能
<?php
class elo_calculator {
public function rating($S1, $S2, $R1, $R2) {
if(empty($S1) or empty($S2) or empty($R1) or empty($R2))
return null;
if($S1 != $S2) {
if($S1 > $S2) {
$E = 120 - round(1/(1 + pow(10, (($R2 - $R1)/400))) * 120);
$R['R3'] = $R1 + $E;
$R['R4'] = $R2 - $E;
} else {
$E = 120 - round(1/(1 + pow(10, (($R1 - $R2)/400))) * 120);
$R['R3'] = $R1 - $E;
$R['R4'] = $R2 + $E;
}
} else {
if($R1 == $R2) {
$R['R3'] = $R1;
$R['R4'] = $R2;
} else {
if($R1 > $R2) {
$E = (120 - round(1/(1 + pow(10, (($R1 - $R2)/400))) * 120)) - (120 - round(1/(1 + pow(10, (($R2 - $R1)/400))) * 120));
$R['R3'] = $R1 - $E;
$R['R4'] = $R2 + $E;
} else {
$E = (120 - round(1/(1 + pow(10, (($R2 - $R1)/400))) * 120)) - (120 - round(1/(1 + pow(10, (($R1 - $R2)/400))) * 120));
$R['R3'] = $R1 + $E;
$R['R4'] = $R2 - $E;
}
}
}
$R['S1'] = $S1;
$R['S2'] = $S2;
$R['R1'] = $R1;
$R['R2'] = $R2;
$R['P1'] = ((($R['R3'] - $R['R1']) > 0)?"+" . ($R['R3'] - $R['R1']) : ($R['R3'] - $R['R1']));
$R['P2'] = ((($R['R4'] - $R['R2']) > 0)?"+" . ($R['R4'] - $R['R2']) : ($R['R4'] - $R['R2']));
return $R;
}
}
?>
我想把這個應用到我的食品評級網站。
這裏是我的理解
- 要使用我們需要分配基本分數爲所有的菜系統開始。
- 我們有4個變量S1,S2,R1,R2(S =分數,R =等級)
- 當兩盤之間的評分如果我按第一道菜。什麼是S1和S2?它會是1-0?
- 如果我在10K戰鬥後添加另一道菜怎麼辦?因爲我會爲它分配一個基本分數會更好嗎?
- 我如何阻止盤的比分不走低於0
這裏是PHP執行相同的。你能幫我理解4個變量嗎?我應該如何使用它?
我發現後面的等級分非常有用的數學理論。它很容易實現它像描述http://en.wikipedia.org/wiki/Elo_rating#Theory – LumpN 2011-04-10 08:54:47
檢查此問題:http://stackoverflow.com/questions/3848004/facemash-algorithm – tradyblix 2011-04-10 09:20:16
@LumpN我檢查出來。我對使用中的變量以及它們的含義有些困惑。將更新我的帖子。 Plz看看。 @tradyblix謝謝。實施它有點麻煩。將更新我的文章 – 2011-04-10 09:38:35