Skip to content
Extraits de code Groupes Projets
Valider 8e07578d rédigé par Eliah REBSTOCK's avatar Eliah REBSTOCK
Parcourir les fichiers

fonction de classement ELO

parent 70c20cd3
Branches
Aucune étiquette associée trouvée
2 requêtes de fusion!21Merge de Dev dans Master,!2Dev phoenix
<?php
/**
* Created by PhpStorm.
* User: phoenix
* Date: 01/04/16
* Time: 18:32
*
*/
/* @param $tab array
* @param $j int
* @requires $j >= 0 and $j < count($tab)
* @returns float
* Renvoie la moyenne du tableau en passant l'indice $j
*/
function avg_skip($tab, $j)
{
$i = 0;
$s = 0;
while ($i < count($tab))
{
if ($i != $j)
{
$s = $s + $tab[$i];
}
$i++;
}
return $s/(count($tab)-1);
}
/* @param $scores_actuel array
* @param $scores_obtenus array
* @param $K int (Coefficient multiplicatif propre au jeu, plus il est élevé, plus le résultat est fin)
* @param $D int (nombre de points pour qu'un joueur soit 10x plus fort qu'un autre)
* @return int
*
* @requires count($scores_actuel) == count($scores_obtenus)
* @requires $K >= 1 and $D > 1
*
* Renvoie le nombre de points obtenus (ou perdus, dans ce cas c'est négatif) dans un tableau
* correspondant aux indices de $scores_obtenus.
*
*/
function ELO($scores_actuel, $scores_obtenus, $K, $D)
{
$newS = array();
$c = max($scores_obtenus)-min($scores_obtenus);
$d = min($scores_obtenus);
$j = 0;
foreach ($scores_actuel as $A)
{
$m = avg_skip($scores_actuel, $j);
$EA = 1/(1+10^(($m-$A)/$D));
$EA = $c * $EA - $d;
$newS[$j] = floor($K * ($scores_actuel[$j]-$EA));
$j++;
}
return $newS;
}
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter