3人以上のプレーヤーでEloを使用したプレーヤーのランキング


16

Eloを使用して、特定のゲームの試合間のプレイヤーランキングを追跡したいと思いますが、ゲームは1つの試合で最大4人のプレイヤーでプレイできます。CarcassonneのようなゲームでEloを使用し、2人以上のプレイヤーがプレイしているのを見てきましたが、1対1のマッチアップ以外ではEloに慣れていません。

ウィキペディアの記事から、拡張したい2人のプレーヤーの方程式は次のとおりです。

E a = 1 /(1 + 10 (R b -R a)/ 400

E b = 1 /(1 + 10 (R a -R b)/ 400

R x new = R x old + 32 *(W – E x)、Xが勝った場合はW = 1、Xが負けた場合はW = 0。

3人以上のプレイヤーがいる場合、E xとWの計算はどのように変わりますか?


Eloスタイルのシステムを3人以上のプレイヤーとのゲームに使用することには注意が必要です。多くの要因が、純粋なスキルのゲームよりも少なくなるように共謀する可能性があるためです。プレーヤーの数が異なる場合、より多くのプレーヤーがいるゲームの重み(つまり、Rの更新式の「32」)を下げることを強くお勧めします。
スティーブンスタドニッキー

@StevenStadnicki推奨に感謝します。しかし、重量定数を下げることで、あなたが言及した問題にどのように対処するかについては不明です。詳しく説明してもらえますか?
fbrereto

マルチプレイヤーマッチのウェイトを下げることは、2プレイヤーマッチほどプレーヤーのレーティングにとって重要ではないと本質的に言っています。基本的に、あなたは彼らがプレイヤーが実際にどれほど優れているかをあまり表していないと言っています。マジックは、トーナメント構造でこれと同様のことを行います。トーナメントのレベルが異なると、プレーヤーのレーティングを決定する際にどのくらいの重みを与えるべきかを表すK値が異なります
スティーブンスタドニッキー

回答:


10

私のGoogle検索のトップリンクで示唆されているように(リンクの腐敗は削除され、WayBackMachineのhttp://web.archive.org/web/20130308190719/http://elo.divergentinformatics.com/のサイトはまだ利用可能です)、プレーヤーのEloレーティング(R値)の個々の変化を計算し、それらを合計して、各プレーヤーのレーティングに適用される合計変化を提供します。

つまり、4人のプレーヤー(A、B、C、D)がいる場合、B、C、Dに対するスコアからAのレーティング(R-sub-a-sub-new)への変化を計算し、Aのレーティングを次のように調整します。計算されたR値の合計。


私はこのルートに行きましたが、これまでのところうまくいきそうです、ありがとう。
fbrereto

残念ながら、リンクはもはや有効ではないようです。
ペトルプドラク

3
ここでのように見えますが、このアイデアのための式です:sradack.blogspot.ru/2008/06/...
DBF

1

私はここでfnordの答えに似た方法のPHPソースコードを含む論文を見つけました:http ://elo-norsak.rhcloud.com/3.phpここでより汎用的なPHP 実装を作成しました:https : //github.com/ FigBug / Multiplayer-ELO私はこれをボードゲームグループで使用していますが、今のところうまく機能しているようです。

ExとWの計算は同じままです。Kの32を使用する代わりに、Kの32 /(#players-1)を使用します。次に、2人のプレーヤーの各順列を見て、(32 /(#players-1)*(W-Ex))を計算します。RxNewは、RxOld +計算したばかりのすべての値の合計に等しくなります。


2
一般的に、完全に外部リンクに依存するのではなく、回答の本文にメソッド/推奨事項の要約を含めることをお勧めします。リンクには時間の経過とともに破壊する習慣があり、誰かが今から何年も調べようとすると、答えに重要な詳細が欠ける可能性があります。
DMGregory

あなたの実践的なコードをありがとう、それは役に立ちます!あなたの実現に一つだけの提案-かもしれそれはラウンド中間結果に良くないのですeloChange += round($K * ($S - $EA));が、設定したときのみ計算のすべての後に丸めんeloPost
FlameStorm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.