🧮 ELO Algorithm
Cómo calculamos el ELO de cada partida con ajuste por diferencia de puntos.
Fórmula paso a paso
- Expectativa estándar: E_A = 1 / (1 + 10^((ELO_B - ELO_A) / 400))
- Diferencia de puntos: x = |puntos_a - puntos_b|
- Factor exponencial: f(x) = 0.475 * exp((2.85/1000) * x)
- K ajustado: K' = K_base * f(x) (K_base = 32 por defecto)
- Nuevo ELO: round(ELO_actual + K' * (Resultado - Expectativa))
Factor exponencial: victorias dominantes suben más ELO; derrotas ajustadas restan menos. El sistema se auto-balancea según la diferencia de puntos.
Parámetros clave
- • K base: 32 (configurable por entorno)
- • Ajuste por puntos: exponencial con x = |puntos_a - puntos_b|
- • ELO por equipo: se compara contra el ELO promedio del rival
- • Redondeo final: se usan enteros para actualizar el ranking
Ejemplo rápido
Victoria dominanteDatos de partida
- Jugador A: ELO 1200, puntos 850 (gana)
- Jugador B: ELO 1300, puntos 650 (pierde)
- Diferencia de puntos: 200
Cálculos
- f(200) ≈ 0.82 → K' ≈ 26.24
- Expectativa A ≈ 0.36
- Ajuste: 26.24 * (1 - 0.36)
Resultado
Nuevo ELO A ≈ 1217. La victoria dominante otorga más puntos que una victoria ajustada con el mismo rival.