diff --git a/ELO_function.php b/ELO_function.php index 2e75229c5059876798e0e84bc240971930b295e9..5da9c83c0fcfec526b92d2943a61863b50434121 100644 --- a/ELO_function.php +++ b/ELO_function.php @@ -13,7 +13,7 @@ * @returns float * Renvoie la moyenne du tableau en passant l'indice $j */ - +srand(); function avg_skip($tab, $j) { $s = 0; @@ -45,12 +45,11 @@ function avg_skip($tab, $j) */ function ELO($scores_actuel, $scores_obtenus, $K, $D) { - $newS = array(); $c = max($scores_obtenus)-min($scores_obtenus); $d = min($scores_obtenus); - for ($j=0;$j<count($scores_obtenus);$j++) + for ($j=0; $j<count($scores_obtenus); $j++) { $m = avg_skip($scores_actuel, $j); $EA = 1/(1+10**(($m-$scores_actuel[$j])/$D)); @@ -63,15 +62,24 @@ function ELO($scores_actuel, $scores_obtenus, $K, $D) $newS[$j] = floor($s); else $newS[$j] = ceil($s); - } + return $newS; +} + +function random_scores($n, $min, $max) +{ + $r = array(); + for ($j=0; $j<$n; $j++) + { + array_push($r, rand($min,$max)); + } + return $r; } /* Test */ print("<html><body><table><th>Itération</th><th>Joueur 1</th><th>Joueur 2</th><th>Joueur 3</th><th>Joueur 4</th><th>Joueur 5</th><th>Somme</th></tr>"); -$sa = array(-2,-1,0,1,2); $DS = array(1000,1000,1000,1000,1000); print("<tr><td>0</td>"); @@ -82,31 +90,20 @@ $p = array_sum($DS); print("<td>$p</td></tr>"); for($j=1;$j<20;$j++){ - $sa = array(-2,-1,0,1,2); + $sa = random_scores(5,0, 50); $res = ELO($DS, $sa, 32, 400); print("<tr><td>$j</td>"); + for ($i=0;$i<count($DS);$i++) { $DS[$i] = $DS[$i] + $res[$i]; $k1 = $DS[$i]; $k2 = $res[$i]; - print("<td>$k1 ($k2)</td>"); + $k3 = $sa[$i]; + print("<td>$k1 ($k2) ($k3)</td>"); } + $p = array_sum($DS); print("<td>$p</td></tr>"); -$j++; -$sa = array(2,1,0,-1,-2); - -$res = ELO($DS, $sa, 32, 400); -print("<tr><td>$j</td>"); -for ($i=0;$i<count($DS);$i++) { - $DS[$i] = $DS[$i] + $res[$i]; - $k1 = $DS[$i]; - $k2 = $res[$i]; - print("<td>$k1 ($k2)</td>"); -} -$p = array_sum($DS); -print("<td>$p</td></tr>"); - } print("</table></body></html>");