Benutzer:Mediator/Tests/ELO: Unterschied zwischen den Versionen

Aus chessmail Wiki @novasign.ch
Zur Navigation springen Zur Suche springen
K
Zeile 62: Zeile 62:
 
</div>
 
</div>
 
<!-- -------------------------------------------------------- -->
 
<!-- -------------------------------------------------------- -->
=== Beispiel 1 ===
 
<div style="border: 1px Gainsboro solid; padding: 4px; background-color: #EEEEEE;">
 
<div><b>Tabelle 1:</b></div>
 
<!-- -------------------------------------------------------- -->
 
<table style="padding-left: 3px; border: 1px solid black; width: 100%; border-collapse: collapse;">
 
<!-- -------------------------------------------------------- -->
 
<tr style="border-bottom: solid 1px Black; background-color: LightGray;">
 
<td colspan="10" style="padding-left: 3px;">Beispiele zur ... <b>q := {{#var: mELOquotient}}</b></td>
 
</tr>
 
<!-- -------------------------------------------------------- -->
 
<tr style="border-bottom: solid 1px Black; background-color: Gainsboro;">
 
<td style="padding-left: 9px; border-right: 1px dotted Black">Name</td>
 
<td style="padding-left: 3px; text-align: left;  border-right: 1px dotted Black;">ELO (alt)</td>
 
<td style="padding-left: 3px; text-align: left;  border-right: 1px solid  Black;">Erwartungswert</td>
 
<td style="padding-left: 3px; text-align: left;  border-right: 1px dotted Black;">ELO (Sieg)</td>
 
<td style="padding-left: 3px; text-align: left;  border-right: 1px solid  Black;">dif.</td>
 
<td style="padding-left:  3px; text-align: left;  border-right: 1px dotted Black;">ELO (Remis)</td>
 
<td style="padding-left: 3px; text-align: left; border-right: 1px solid  Black;">dif.</td>
 
<td style="padding-left: 3px; text-align: left;  border-right: 1px dotted Black;">ELO (Niederl.)</td>
 
<td style="padding-left: 3px; text-align: left; border-right: 1px solid  Black;">dif.</td>
 
<td>++++</td>
 
</tr>
 
<!-- -------------------------------------------------------- -->
 
<tr style="border-bottom: 1px solid LightGrey; background-color: LemonChiffon;">
 
<td style="padding-left: 9px;">Spieler A</td>
 
<td style="text-align: right; border-right: 1px solid Black;">{{#var: mPlayer1ELOwertalt}}</td>
 
<td>{{#expr: {{#var: erwa}} round5 }}</td>
 
<td style="text-align: right; border-right: 1px solid Black;">{{#vardefine: player1result | 1 }}{{#vardefineecho: mPlayer1SiegELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }}</td>
 
<td>{{#vardefineecho: mPlayer1SiegDif| {{#expr: {{#var: mPlayer1SiegELOwertneu}} - {{#var: mPlayer1ELOwertalt}} }} }}</td>
 
<td>{{#vardefine: player1result | 0.5 }}{{#vardefineecho: mPlayer1RemisELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }}</td>
 
<td>{{#vardefineecho: mPlayer1RemisDif | {{#expr: {{#var: mPlayer1RemisELOwertneu}} - {{#var: mPlayer1ELOwertalt}} }} }}</td>
 
<td>{{#vardefine: player1result | 0 }}{{#vardefineecho: mPlayer1NiederlELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }}</td>
 
<td>{{#vardefineecho: mPlayer1NiederlDif | {{#expr: {{#var: mPlayer1NiederlELOwertneu}} - {{#var: mPlayer1ELOwertalt}} }} }}</td>
 
<td style="text-align: right; padding-right: 3px;">&nbsp;</td>
 
</tr>
 
<!-- -------------------------------------------------------- -->
 
<tr style="background-color: LightCyan;">
 
<td style="padding-left: 9px;">Spieler B</td>
 
<td style="text-align: right; padding-right: 3px; border-right: 1px solid Black;">{{#var: mPlayer2ELOwertalt}}</td>
 
<td style="text-align: right; padding-right: 3px; border-right: 1px solid Black;">{{#expr: (1 - {{#var: erwa}}) }}</td>
 
<td style="text-align: right; padding-right: 3px; border-right: 1px solid Black;">{{#expr: {{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1SiegDif}} }}</td>
 
<td style="text-align: right;padding-right: 3px; ">{{#expr: (-1)*{{#var: mPlayer1SiegDif}} }}</td>
 
<td style="text-align: right; padding-right: 3px; border-right: 1px solid Black;">{{#expr: {{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1RemisDif}} }}</td>
 
<td style="text-align: right; padding-right: 3px; border-right: 1px solid Black;">{{#expr: {{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1RemisDif}} }}</td>
 
<td style="text-align: right; padding-right: 3px; border-right: 1px solid Black;">{{#expr: {{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1NiederlDif}} }}</td>
 
<td style="text-align: right; border-right: 1px solid Black;">{{#expr: (-1)*{{#var: mPlayer1NiederlDif}} }}</td>
 
<td>&nbsp;</td>
 
</tr>
 
<tr style="border-top: solid 1px Black; background-color: HoneyDew;">
 
<td style="text-align: right; padding-right: 3px;">Differenz</td>
 
<td style="text-align: right; padding-right: 3px; border-right: 1px solid Black;">{{#expr: {{#var: mPlayer1ELOwertalt}} - {{#var: mPlayer2ELOwertalt}} }}</td>
 
<td colspan="8">&nbsp;</td>
 
</tr>
 
</table>
 
Hinweis: die einzelnen, neuen Berechnungswerte wurden entsprechend gerundet.
 
</div>
 
----
 
<!-- -------------------------------------------------------- -->
 
<!--                                                          -->
 
 
=== Beispiel 1 ===
 
=== Beispiel 1 ===
 
<!-- -------------------------------------------------------- -->{{#vardefine: mELOquotient | {{#var: mELOquotient400}}}}<!--
 
<!-- -------------------------------------------------------- -->{{#vardefine: mELOquotient | {{#var: mELOquotient400}}}}<!--

Version vom 19. April 2013, 15:55 Uhr

ELO: Erwartungswert

Im folgenden einige Beispiele für das Auswerten mathematischer Ausdrücke unter chessmail-wiki anhand verschiedener ELO-Berechnungen:

Partie: Spieler A vs. Spieler B

  • bisherige ELO-Zahl Spieler A: ra := {{#vardefineecho: ra|2806}}
  • bisherige ELO-Zahl Spieler B: rb := {{#vardefineecho: rb|2577}}

dif(rb-ra){{#vardefine: dif | {{#expr: ({{#var:rb}} - {{#var:ra}}) }} }} div400{{#vardefine: expo | {{#expr: ({{#var:dif}}/400) }} }} 10 ^ expo: {{#vardefine: y1 | {{#expr: 10^{{#var:expo}} }} }} (1 + y1) : {{#vardefine: n | {{#expr: 1 + {{#var:y1}} }} }}


  • Erwartungswert für Spieler A: ra:= {{#vardefineecho: erwa | {{#expr: {{#var:n}} }} }}
  • Erwartungswert für Spieler B: rb:= {{#vardefineecho: erwb | {{#expr: 1 - {{#var:erwa}} }} }}

Spieler A (als Gewinner der Partie){{#vardefine: spa1 | 1 }} {{#vardefine: erwb | {{#expr: {{#var: spa1}} - {{#var:erwa}} }} }} * k (CONST){{#vardefine:k|10}} * neue Elo-Zahl von Spieler A:{{#vardefine: nra| {{#expr: {{#var: ra}}+ {{#var: k}} * ({{#var: spa1}} - {{#var:erwa}}) }} }}

  • neue (dynamisch berechnete) ELO-Zahl: {{#expr: {{#var:nra}} round0 }}

{{#vardefine: mELOquotient | {{#var: mELOquotient400}}}} Beispiel: Player 1 gewinnt gegen Player 2:

  • mELOquotient := {{#var: mELOquotient400}} (const.)
  • Player1 (ELOwert alt) := {{#var: mPlayer1ELOwertalt}}
  • Player2 (ELOwert alt) := {{#var: mPlayer2ELOwertalt}}
  • Erwartungswert für Player 1 := {{#vardefineecho: erwa | {{#expr: 1 / (1 + 10^( ({{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1ELOwertalt}}) / {{#var: mELOquotient}} ) ) round5}} }} (gerundet)
  • Player1 (ELOwert neu) := {{#vardefineecho: mPlayer1ELOwertneu | {{#expr: {{#var: nra}} round0 }} }} (gen.)

Beispiel 1

{{#vardefine: mELOquotient | {{#var: mELOquotient400}}}}{{#vardefine: erwa | {{#expr: 1 / (1 + 10^( ({{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1ELOwertalt}}) / {{#var: mELOquotient}} ) ) }} }}

Tabelle:
<td"> 
Beispiele zur ELO-Berechnung (historisch, q := {{#var: mELOquotient}})
Spieler/ELO   Sieg Remis Niederlage
Name (alt) Erwartungswert ELO:(neu) Dif. ELO (neu) Dif. ELO (neu) Dif.  
Spieler A {{#var: mPlayer1ELOwertalt}} {{#expr: {{#var: erwa}} }} {{#vardefine: player1result | 1 }}{{#vardefineecho: mPlayer1SiegELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }} {{#vardefineecho: mPlayer1SiegDif| {{#expr: {{#var: mPlayer1SiegELOwertneu}} - {{#var: mPlayer1ELOwertalt}} }} }} {{#vardefine: player1result | 0.5 }}{{#vardefineecho: mPlayer1RemisELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }} {{#vardefineecho: mPlayer1RemisDif | {{#expr: {{#var: mPlayer1RemisELOwertneu}} - {{#var: mPlayer1ELOwertalt}} }} }} {{#vardefine: player1result | 0 }}{{#vardefineecho: mPlayer1NiederlELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }} {{#vardefineecho: mPlayer1NiederlDif | {{#expr: {{#var: mPlayer1NiederlELOwertneu}} - {{#var: mPlayer1ELOwertalt}} }} }}  
Spieler B {{#var: mPlayer2ELOwertalt}} {{#expr: (1 - {{#var: erwa}}) }} {{#expr: {{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1SiegDif}} }} {{#expr: ((-1)*{{#var: mPlayer1SiegDif}}) }} {{#expr: {{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1RemisDif}} }} {{#expr: ({{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1RemisDif}}) }} {{#expr: ({{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1NiederlDif}}) }} {{#expr: ((-1)*{{#var: mPlayer1NiederlDif}}) }}  
Differenz :=  {{#expr: ({{#var: mPlayer1ELOwertalt}} - {{#var: mPlayer2ELOwertalt}}) }}  

Hinweis: die einzelnen, neuen Berechnungswerte wurden entsprechend gerundet.

Beispiel 2

{{#vardefine: mELOquotient | {{#var: mELOquotient250}}}}{{#vardefine: erwa | {{#expr: 1 / (1 + 10^( ({{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1ELOwertalt}}) / {{#var: mELOquotient}} ) ) }} }}

Tabelle:
<td"> 
Beispiele zur ELO-Berechnung (chessmail, q := {{#var: mELOquotient}})
Spieler/ELO   Sieg Remis Niederlage
Name (alt) Erwartungswert ELO:(neu) Dif. ELO (neu) Dif. ELO (neu) Dif.  
Spieler A {{#var: mPlayer1ELOwertalt}} {{#expr: {{#var: erwa}} }} {{#vardefine: player1result | 1 }}{{#vardefineecho: mPlayer1SiegELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }} {{#vardefineecho: mPlayer1SiegDif| {{#expr: {{#var: mPlayer1SiegELOwertneu}} - {{#var: mPlayer1ELOwertalt}} }} }} {{#vardefine: player1result | 0.5 }}{{#vardefineecho: mPlayer1RemisELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }} {{#vardefineecho: mPlayer1RemisDif | {{#expr: {{#var: mPlayer1RemisELOwertneu}} - {{#var: mPlayer1ELOwertalt}} }} }} {{#vardefine: player1result | 0 }}{{#vardefineecho: mPlayer1NiederlELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }} {{#vardefineecho: mPlayer1NiederlDif | {{#expr: {{#var: mPlayer1NiederlELOwertneu}} - {{#var: mPlayer1ELOwertalt}} }} }}  
Spieler B {{#var: mPlayer2ELOwertalt}} {{#expr: (1 - {{#var: erwa}}) }} {{#expr: {{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1SiegDif}} }} {{#expr: ((-1)*{{#var: mPlayer1SiegDif}}) }} {{#expr: {{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1RemisDif}} }} {{#expr: ({{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1RemisDif}}) }} {{#expr: ({{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1NiederlDif}}) }} {{#expr: ((-1)*{{#var: mPlayer1NiederlDif}}) }}  
Differenz :=  {{#expr: ({{#var: mPlayer1ELOwertalt}} - {{#var: mPlayer2ELOwertalt}}) }}  

Hinweis: die einzelnen, neuen Berechnungswerte wurden entsprechend gerundet.