Utile per gestire classifiche in giochi con partite tra più di due giocatori, viene considerata solo la vittoria.

Tratto da un mio intervento sul forum di Editrice Giochi di qualche anno fa ( post #39 del 15/11/2010 ).

 

Poniamo di avere i seguenti 5 giocatori

A con Elo = 1670
B con Elo = 1800
C con Elo = 1500
D con Elo = 1600
E con Elo = 1600

ed A vince la partita.

Ci si aspetta che A aumenti il proprio Elo e gli altri
lo diminuiscano.

Sia

 

v[0] = P(A-B) = 0.321183 (minore del 50% infatti A è più debole di B)
v[1] = P(B-C) = 0.849020 (maggiore del 50% infatti B è più forte di C)
v[2] = P(C-D) = 0.359935 (minore del 50% infatti C è più debole di D)
v[3] = P(D-E) = 0.5 (uguale al 50% infatti D è come E)

con  la seguente funzione ( ^ è il simbolo di esponente )

 

P(d) = 1 / ( 1 + 10 ^ ( -d / 400 ) )                        logistica

 


x[0] = P(A-B) = 0.321183
x[1] = x[0] * (1 - P(A-B)) / P(A-B) = 0.678816
x[2] = x[1] * (1 - P(B-C)) / P(B-C) = 0.120712
x[3] = x[2] * (1 - P(C-D)) / P(C-D) = 0.214659
x[4] = x[3] * (1 - P(D-E)) / P(D-E) = 0.214659

Sia ora t = x[0] + ... + x[4]

e ancora sia z[j] = x[j] / t per j = 0,...,4

z[0] = 0.207210
z[1] = 0.437937
z[2] = 0.077877
z[3] = 0.138488
z[4] = 0.138488

Le z[] sono le probabilità che i singoli giocatori hanno di vincere la partita.
Mantenendo inalterati i rapporti di forza.

Aggiornando i punteggi:

Nuovo(A) = Vecchio(A) + 30 * (1 - 0.207210) = 1670 + 23 = 1693
Nuovo(B) = Vecchio(B) + 30 * (0 - 0.437937) = 1800 - 13 = 1787
Nuovo(C) = Vecchio(C) + 30 * (0 - 0.077877) = 1500 - 2 = 1498
Nuovo(D) = Vecchio(D) + 30 * (0 - 0.138488) = 1600 - 4 = 1596
Nuovo(E) = Vecchio(E) + 30 * (0 - 0.138488) = 1600 - 4 = 1596

Vengono tolti ai giocatori perdenti tanti punti quanti ne vengono aggiunti al vincitore.

Ovviamente al giocatore perdente che ha un punteggio alto viene tolto molto perché ci si aspetta di meglio. Se perde un giocatore con punteggio basso viene tolto meno.

 

---------------

Nota:

quando si effettua il conteggio dei punti si procede nel modo seguente per evitare problemi di inflazione/deflazione: si calcolano prima tutti i punti persi dai giocatori “perdenti” e si fa la somma di tale quantità. Essa viene poi aggiunta al punteggio del vincitore. In questo modo la somma totale è sempre 0.

Il calcolo deve essere fatto in quest’ordine.

---------------

fShare
0
Pin It
Accedi per commentare