Merci pour cette attention !
J’ai lu le code, j’ai trouvé astucieuse l’idée d’utiliser un usort().
Il est évident qu’avec la méthode de départage des égalités utilisée, peu importe le nombre de votants puisque le calcul se fait sur la base des pourcentages. Les autres méthodes, qui produisent moins d’incertitudes sur des scrutins avec peu de votants, sont nécessairement plus complexes.
J’aurais une question (que j’aurais aimé poser à l’auteur de cette méthode de départage), c’est comment faut-il se comporter pour discriminer des groupes d’égalités ? Dans cet exemple, quand quatre exæquo sont départagés en 2x2 exæquo, on relance un tour, mais on ne conserve plus l’information d’ordonnancement entre les deux groupes, l’un étant au-dessus de l’autre. L’itération suivante peut très bien déjouer cette première approximation (ou me trompé-je ?).
J’ai choisi de lancer des départages successifs pour chaque groupe d’égalité.
En utilisant l’exemple donné, voici le code à entrer dans la machine (Referendum) :
,pizza,chips,pasta,bread
3,2,2,3
2,4,2,2
3,2,3,2
1,3,4,2