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

Aus chessmail Wiki @novasign.ch
Zur Navigation springen Zur Suche springen
K
K
Zeile 119: Zeile 119:
 
</div>
 
</div>
 
----
 
----
 +
<!-- -------------------------------------------------------- -->
 +
<!--                                                          -->
 +
=== Beispiel 2.0 ===
 +
<!-- -------------------------------------------------------- -->{{#vardefine: mELOquotient | {{#var: mELOquotient400}}}}<!--
 +
-->{{#vardefine: erwa | {{#expr: 1 / (1 + 10^( ({{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1ELOwertalt}}) / {{#var: mELOquotient}} ) ) }} }}
 +
<!-- -------------------------------------------------------- -->
 +
<div style="border: 1px Gainsboro solid; padding: 4px; background-color: #EEEEEE;">
 +
<div><b>Tabelle:</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 ELO-Berechnung (<b>chessmail, q := {{#var: mELOquotient}})</b>
 +
</td>
 +
</tr>
 +
<!-- -------------------------------------------------------- -->
 +
<tr style="border-bottom: 1px Black solid; background-color: Gainsboro;">
 +
<!-- -------------------------------------------------------- -->
 +
<td colspan="2" style="padding-left: 3px; border-right: 1px solid Black;">Spieler/ELO</td>
 +
<td style="border-right: 1px solid Black;">&nbsp;</td>
 +
<td colspan="2" style="padding-left: 3px; border-right: 1px solid Black;">Sieg</td>
 +
<td colspan="2" style="padding-left: 3px; border-right: 1px solid Black;">Remis</td>
 +
<td colspan="2" style="padding-left: 3px; border-right: 1px solid Black;">Niederlage</td>
 +
<td">&nbsp;</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 solid Black;">(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:(neu)</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 (neu)</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 (neu)</td>
 +
<td style="padding-left: 3px; text-align: left; border-right: 1px solid  Black;">Dif.</td>
 +
<td>&nbsp;</td>
 +
</tr>
 +
<!-- -------------------------------------------------------- -->
 +
<!-- -------------------------------------------------------- -->
 +
<tr style="border-bottom: 1px dotted LightGrey; background-color: LemonChiffon;">
 +
<!-- -------------------------------------------------------- -->
 +
<td style="padding-left: 9px;">Spieler A</td>
 +
<td style="text-align: right; border-right: 1px solid Black; padding-right: 3px;">{{#var: mPlayer1ELOwertalt}}</td>
 +
<td style="text-align: right; border-right: 1px solid Black; padding-right: 3px;">{{#expr: {{#var: erwa}} }}</td>
 +
<td style="text-align: right; border-right: 1px dotted Black; padding-right: 3px;">{{#vardefine: player1result | 1 }}{{#vardefineecho: mPlayer1SiegELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }}</td>
 +
<td style="text-align: right; border-right: 1px solid Black; padding-right: 3px;">{{#vardefineecho: mPlayer1SiegDif| {{#expr: {{#var: mPlayer1SiegELOwertneu}} - {{#var: mPlayer1ELOwertalt}} }} }}</td>
 +
<td style="text-align: right; border-right: 1px dotted Black; padding-right: 3px;">{{#vardefine: player1result | 0.5 }}{{#vardefineecho: mPlayer1RemisELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }}</td>
 +
<td style="text-align: right; border-right: 1px solid Black; padding-right: 3px;">{{#vardefineecho: mPlayer1RemisDif | {{#expr: {{#var: mPlayer1RemisELOwertneu}} - {{#var: mPlayer1ELOwertalt}} }} }}</td>
 +
<td style="text-align: right; border-right: 1px dotted Black; padding-right: 3px;">{{#vardefine: player1result | 0 }}{{#vardefineecho: mPlayer1NiederlELOwertneu | {{#expr: {{#var: mPlayer1ELOwertalt}} + 10 * ({{#var: player1result}} - {{#var: erwa}}) round0 }} }}</td>
 +
<td style="text-align: right; border-right: 1px solid Black; padding-right: 3px;">{{#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 dotted Black;">{{#expr: {{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1SiegDif}} }}</td>
 +
<td style="text-align: right; padding-right: 3px; border-right: 1px solid Black;">{{#expr: ((-1)*{{#var: mPlayer1SiegDif}}) }}</td>
 +
<td style="text-align: right; padding-right: 3px; border-right: 1px dotted 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 dotted Black;">{{#expr: ({{#var: mPlayer2ELOwertalt}} - {{#var: mPlayer1NiederlDif}}) }}</td>
 +
<td style="text-align: right; padding-right: 3px; 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 :=&nbsp;</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>
 
<!-- -------------------------------------------------------- -->
 
<!-- -------------------------------------------------------- -->
 
<!--                                                          -->
 
<!--                                                          -->

Version vom 19. April 2013, 15:52 Uhr

ELO: Erwartungswert

Im folgenden ein Beispiel für das Auswerten mathematischer Ausdrücke unter chessmail-wiki:

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

Tabelle 1:
Beispiele zur ... q := {{#var: mELOquotient}}
Name ELO (alt) Erwartungswert ELO (Sieg) dif. ELO (Remis) dif. ELO (Niederl.) dif. ++++
Spieler A {{#var: mPlayer1ELOwertalt}} {{#expr: {{#var: erwa}} round5 }} {{#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.0

{{#vardefine: mELOquotient | {{#var: mELOquotient400}}}}{{#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.

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.