Ich möchte Elo verwenden, um die Ranglisten der Spieler zwischen den Spielen eines bestimmten Spiels zu verfolgen. Das Spiel kann jedoch mit bis zu vier Spielern in einem Spiel gespielt werden. Ich habe Spiele wie Carcassonne gesehen, in denen Elo mit mehr als zwei Spielern gespielt wurde, aber ich kenne Elo erst nach einem 1: 1-Match.
Aus dem Wikipedia-Artikel sind die Zwei-Spieler-Gleichungen, die ich erweitern möchte:
E a = 1 / (1 + 10 (R b - R a ) / 400 )
E b = 1 / (1 + 10 (R a - R b ) / 400 )
R x neu = R x alt + 32 * (W - E x ), wobei W = 1, wenn X gewinnt, und W = 0, wenn X verliert.
Wie würde sich die Berechnung für E x und W bei mehr als zwei Spielern ändern?
algorithm
multiplayer
ranking
fbrereto
quelle
quelle
Antworten:
Wie durch den oberen Link in meiner Google-Suche vorgeschlagen (Link rot entfernt, Site weiterhin in der WayBackMachine verfügbar unter http://web.archive.org/web/20130308190719/http://elo.divergentinformatics.com/ ), könnten Sie Berechnen Sie die einzelnen Änderungen in der Elo-Wertung eines Spielers (Ihre R-Werte) und addieren Sie sie dann, um die Gesamtänderung für die Wertung jedes Spielers zu erhalten.
Wenn Sie also 4 Spieler haben (A, B, C, D), berechnen Sie die Änderung der Bewertung von A (R-sub-a-sub-new) aus ihren Punktzahlen gegen B, C und D und passen Sie dann die Bewertung von A um an die Summe der berechneten R-Werte.
quelle
Ich habe hier eine Veröffentlichung mit PHP-Quellcode einer Methode gefunden, die der Antwort von fnord ähnelt: http://elo-norsak.rhcloud.com/3.php Ich habe hier eine allgemeinere PHP-Implementierung erstellt: https://github.com/ FigBug / Multiplayer-ELO Ich benutze es mit meiner Brettspielgruppe und bis jetzt scheint es gut zu funktionieren.
Die Berechnung von Ex und W würde gleich bleiben. Verwenden Sie statt eines K von 32 ein K von 32 / (#players - 1). Schauen Sie sich dann jede Permutation von 2 Spielern an und berechnen Sie (32 / (#players - 1) * (W - Ex)). Dann ist RxNew gleich RxOld + Summe aller soeben berechneten Werte.
quelle