Gostaria de usar o Elo para rastrear a classificação dos jogadores entre as partidas de um determinado jogo, no entanto, o jogo pode ser jogado com até quatro jogadores em uma partida. Vi jogos como Carcassonne usar Elo com mais de dois jogadores jogando, mas não estou familiarizado com Elo além de uma partida por 1 x 1.
No artigo da wikipedia, as equações para dois jogadores que eu gostaria de estender são:
E a = 1 / (1 + 10 (R b - R a ) / 400 )
E b = 1 / (1 + 10 (R um - R b ) / 400 )
R x novo = R x antigo + 32 * (L - E x ), em que W = 1 se X vencer e W = 0 se X perder.
Como o cálculo de E x e W mudaria se houvesse mais de dois jogadores?
algorithm
multiplayer
ranking
fbrereto
fonte
fonte
Respostas:
Conforme sugerido pelo link superior na minha pesquisa no Google (link pod removido, site ainda disponível no WayBackMachine em http://web.archive.org/web/20130308190719/http://elo.divergentinformatics.com/ ), você pode calcule as alterações individuais na classificação Elo de um jogador (seus valores de R) e, em seguida, some-as para fornecer a alteração total a ser aplicada à classificação de cada jogador.
ou seja, se você tem 4 jogadores (A, B, C, D), calcule a alteração na classificação de A (R-sub-a-sub-nova) das pontuações contra B, C e D e ajuste a classificação de A o total dos valores R calculados.
fonte
Encontrei um artigo com código-fonte PHP de um método semelhante à resposta do fnord aqui: http://elo-norsak.rhcloud.com/3.php Criei uma implementação php de propósito mais geral aqui: https://github.com/ FigBug / Multiplayer-ELO Estou usando-o com meu grupo de jogos de tabuleiro e, até agora, parece estar funcionando bem.
O cálculo de Ex e W permaneceria o mesmo. Em vez de usar um K de 32, use um K de 32 / (#players - 1). Então, observe cada permutação de 2 jogadores e calcule (32 / (#jogadores - 1) * (W - Ex)). Então RxNew é igual a RxOld + Soma de todos os valores que você acabou de calcular.
fonte
eloChange += round($K * ($S - $EA));
mas faça o arredondamento somente após todos os cálculos ao definireloPost