PHP Facemash ELO评级类/功能
我从PHPClasses网站获得了以下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个变量以及我该如何使用它?
没有找到相关结果
已邀请:
2 个回复
凸晴
黎喊病
最后 你应该从10开始评级,所以它不会低于0,最有可能不会高于20 希望这可以帮助