← Știri

Cum calculăm ELO-ul la table în Table42

Cum calculează Table42 ratingul ELO la table de la versiunea 1.3.1: formula exactă, factorul K, cubul de dublare și ce am schimbat, cu tot cu cod.

technical 18 septembrie 2026

Ratingul tău în modul Competitiv din Table42 este un număr ELO. Toți jucătorii pornesc de la 1500. După fiecare partidă competitivă, câștigătorul primește puncte, iar învinsul pierde puncte. Câte anume depinde de trei lucruri: diferența de rating dintre voi, cât de sus a ajuns cubul de dublare și, de la versiunea 1.3.1, câte partide competitive ai jucat în ultimele 7 zile. Dacă bați un adversar egal cu tine, primești +16. Dacă bați unul mult mai puternic, primești mai mult. Dacă bați unul mult mai slab, primești mai puțin. Marțul și marțul tehnic nu schimbă deloc ratingul.

Asta e varianta scurtă. Mai jos găsești tot calculul, așa cum funcționează de la versiunea 1.3.1 (octombrie 2026), numerele alese, de ce le-am schimbat de două ori și codul real. Preferăm să-ți arătăm matematica decât să-ți cerem să ne crezi pe cuvânt.

Ce partide contează pentru ELO

  • Partidele din modul Competitiv: da. ELO-ul se schimbă doar aici.
  • Partidele Boosted: nu. Partidele Boosted (modul se numea Casual înainte de versiunea 1.3.0) aduc puncte pentru clasamentul Boosted și Sparks, dar nu ating ELO-ul.
  • Turneele: partidele din turneu nu schimbă ELO-ul. În schimb, turneele publice dau premii fixe de ELO pentru podium, de exemplu +50, +25 și +15. Detalii în articolul despre turnee.

Pasul 1: cât de probabil era să câștigi?

Înainte să spunem cât valorează o victorie, estimăm cât de probabilă era. Asta e scorul așteptat, un număr între 0 și 1:

așteptat = 1 / (1 + 10^((ratingul adversarului − ratingul tău) / 1200))

Dacă ai același rating ca adversarul, scorul așteptat e 0,5: cap sau pajură. Cu cât ești mai sus decât el, cu atât se apropie de 1.

Diferență de ratingȘansa favoritului de a câștiga
050,0%
5052,4%
10054,8%
15057,1%
20059,5%
30064,0%
40068,3%
50072,3%

Pasul 2: cu cât a depășit rezultatul așteptările?

Apoi comparăm ce s-a întâmplat cu ce era de așteptat:

schimbare = K × (rezultat − așteptat)

rezultat e 1 pentru victorie și 0 pentru înfrângere. K este factorul K: cea mai mare schimbare pe care o poate aduce o singură partidă (fără cub, vezi mai jos). Pentru cei mai mulți jucători, K este 32. Rotunjim la un număr întreg.

Doi jucători cu 1500: scor așteptat 0,5. Câștigătorul primește 32 × (1 − 0,5) = +16, învinsul pierde 16.

Iată cum arată pentru diferite diferențe de rating, cu K la 32 și cubul la 1:

Diferență de ratingCâștigă favoritulCâștigă outsiderul
0+16 / −16+16 / −16
100+14 / −14+18 / −18
200+13 / −13+19 / −19
300+12 / −12+20 / −20
400+10 / −10+22 / −22

Logica e simplă: o surpriză valorează mai mult decât o victorie așteptată. Dacă ești cu 200 de puncte peste adversar, trebuie să câștigi cam 60% din partidele cu el doar ca să rămâi pe loc. Câștigi mai des, urci. Câștigi mai rar, cobori, chiar dacă tot câștigi majoritatea partidelor.

Pasul 3: cât de mult ai jucat săptămâna asta?

Pasul acesta e nou în versiunea 1.3.1. Înainte să puncteze o partidă competitivă, serverul numără câte partide competitive a jucat fiecare jucător în ultimele 7 zile:

  • Mai puțin de 50 de partide: K este 32.
  • 50 de partide sau mai multe: K este 16. Orice schimbare, în sus sau în jos, e pe jumătate.
Diferență de ratingK = 32 (favoritul câștigă / pierde)K = 16 (favoritul câștigă / pierde)
0+16 / −16+8 / −8
150+14 / −18+7 / −9
300+12 / −20+6 / −10

De ce? Cât se mișcă un rating într-o săptămână depinde, în mare, de K înmulțit cu numărul de partide jucate. Unii jucători joacă 300 de partide competitive pe săptămână. Cu K = 32, era de ajuns să fie cu 2 sau 3 puncte procentuale sub procentul de victorii așteptat, ceea ce pe atâtea partide e noroc obișnuit, ca să piardă în jur de 200 de puncte într-o singură săptămână. Cu K pe jumătate, o săptămână cu multe partide rămâne cam la fel de agitată ca una normală. Cine joacă mai puțin păstrează K-ul întreg și urcă la fel de repede ca înainte.

Trei detalii:

  • Fiecare jucător are K-ul lui. Numărătoarea se face separat pentru câștigător și pentru învins.
  • Cele două schimbări nu mai sunt mereu în oglindă. Dacă tu ai jucat 60 de partide competitive săptămâna asta, iar adversarul tău, cu același rating, a jucat 10, o victorie îți aduce +8, iar el pierde 16. Dacă el câștigă, primește +16, iar tu pierzi 8. Când amândoi jucătorii au același K, câștigătorul primește în continuare exact cât pierde învinsul.
  • Fereastra se mută odată cu tine. Sunt mereu cele 7 zile dinaintea partidei care se punctează, iar partida respectivă nu intră în numărătoare. Când scazi sub 50, revii la K = 32.

De ce împărțim la 1200, nu la 400

La șah, ELO-ul împarte la 400. De acolo am pornit și noi. Am trecut la 800 în versiunea 1.2.0 și la 1200 în versiunea 1.3.1.

Numărul acesta decide cât de sigur e sistemul că jucătorul mai bun va câștiga. Cu 400, un favorit cu 200 de puncte în plus ar trebui să câștige în 76% din cazuri. La șah e rezonabil. La o singură partidă de table e mult prea mult, pentru că zarurile îi dau jucătorului mai slab șanse reale în fiecare partidă. Chiar și un jucător mult mai bun pierde destule partide din cauza norocului.

Rezultatul era un rating care îi penaliza pe jucătorii buni. Cu 400, un jucător cu 300 de puncte peste adversar primea +5 pentru o victorie și pierdea 27 pentru o înfrângere. Ca să rămână pe loc trebuia să câștige 85% din aceste partide, ceea ce la table e aproape imposibil.

În 1.2.0 am trecut la 800, adică o curbă de două ori mai lină. A ajutat, dar nu destul. După câteva săptămâni de partide competitive am comparat curba cu rezultatele reale. Cei mai buni jucători ai noștri câștigau între 57 și 58% din partide, în timp ce curba aștepta de la ei în jur de 60%. Așa că pierdeau în continuare rating deși câștigau majoritatea partidelor, iar clasamentul rămânea înghesuit: jumătate dintre jucătorii activi erau la cel mult 60 de puncte unul de altul.

Cu 1200, curba se potrivește cu ce permit de fapt zarurile:

Favorit cu 300 de puncteÎnainte de 1.2.0 (÷400)De la 1.2.0 la 1.3.0 (÷800)De la 1.3.1 (÷1200)
Șansă așteptată de câștig84,9%70,3%64,0%
Puncte pentru o victorie+5+9+12
Puncte pentru o înfrângere−27−23−20

Ca reper, FIBS, cel mai vechi server de table, merge și mai departe și folosește 2000 pentru meciurile de un punct. Cu factorul nostru K de 32, asta ar întinde clasamentul peste 3000 de puncte, așa că ne-am oprit la 1200.

Nu am recalculat partidele vechi. Formula nouă se aplică partidelor competitive jucate după schimbare, iar ratingul tău a rămas cel pe care îl aveai.

Cubul de dublare: miză mai mare, dar cu limită

O partidă jucată pe un cub mai mare trebuie să conteze puțin mai mult, dar nu trebuie să-ți rescrie ratingul dintr-o singură partidă norocoasă. De aceea cubul înmulțește schimbarea de ELO cu un coeficient între 1,0 și 2,0. Fiecare dublare adaugă o șesime din drumul până la maxim:

coeficient = 1 + log2(cub) / 6
CubCoeficientDoi jucători cu 1500, K = 32Doi jucători cu 1500, K = 16
11,00±16±8
21,17±19±9
41,33±21±11
81,50±24±12
161,67±27±13
321,83±29±15
642,00±32±16

Chiar și la cubul maxim, 64, schimbarea e cel mult dublă față de cea normală. Înainte de versiunea 1.0.5, cubul înmulțea direct punctele, iar o singură partidă cu cub mare putea muta ratingul mult mai mult decât merita. Cubul contează în continuare, ca deciziile de a accepta sau a refuza dublarea să aibă sens, dar pe cine ai bătut și dacă ai câștigat contează mult mai mult.

De ce marțul nu contează

Marțul valorează 2 puncte, iar marțul tehnic 3, și în Table42 îți aduc în continuare mai multe puncte la rezultat. Dar ratingul nu ține cont de ele. ELO-ul măsoară un singur lucru: cât de des bați jucători de un anumit nivel. Marțul e o victorie mai mare, dar tot o victorie e. Primele versiuni ale Table42 dădeau ELO în plus pentru marț, iar asta răsplătea mai ales partidele riscante și norocoase, nu jocul constant. De la 1.0.5 contează doar victoria, ratingul adversarului și cubul.

Abandon, deconectare și timpul pe mutare

O partidă competitivă care se termină mai devreme contează oricum. Dacă abandonezi, ieși, rămâi prea mult fără conexiune sau depășești timpul la 3 mutări, partida se punctează ca o înfrângere obișnuită, la valoarea cubului din acel moment. Aplicația te avertizează înainte să abandonezi. Regula există pentru corectitudine: altfel, ieșirea dintr-o partidă pierdută ar fi o cale gratuită de a-ți proteja ratingul.

Codul real

Acesta este codul pe care serverul nostru de joc îl rulează după fiecare partidă competitivă (Go):

const K = 32                 // maximum change per game, before the cube
const HeavyVolumeK = 16      // K for players with a heavy ranked week
const HeavyVolumeGames = 50  // ranked games in the window that switch K
const HeavyVolumeWindow = 7 * 24 * time.Hour
const Divisor = 1200         // chess uses 400; dice make single games less predictable
const Starting = 1500

func KFor(recentRankedGames int) int {
	if recentRankedGames >= HeavyVolumeGames {
		return HeavyVolumeK
	}
	return K
}

func CalculateChangeWithK(winnerELO, loserELO, winnerK, loserK int, coefficient float64) Change {
	expectedWinner := expectedScore(winnerELO, loserELO)
	expectedLoser := 1 - expectedWinner

	return Change{
		Winner: int(math.Round(float64(winnerK) * (1 - expectedWinner) * coefficient)),
		Loser:  int(math.Round(float64(loserK) * (0 - expectedLoser) * coefficient)),
	}
}

func expectedScore(playerELO, opponentELO int) float64 {
	return 1.0 / (1.0 + math.Pow(10, float64(opponentELO-playerELO)/Divisor))
}

coefficient este multiplicatorul cubului din tabelul de mai sus. winnerK și loserK vin din KFor, cu partidele competitive ale fiecărui jucător din ultimele 7 zile.

Observă ce nu primește codul: nici seria de victorii, nici țara, nici cumpărăturile, nicio „echilibrare” ascunsă. Singurele date de intrare sunt cele două ratinguri, cubul și câte partide competitive a jucat fiecare jucător săptămâna asta. Același principiu ca la zaruri: dacă nu e în formulă, nu te afectează.

Întrebări frecvente despre ELO

Cu ce ELO încep în Table42?

Toți jucătorii noi pornesc de la 1500.

Câte puncte ELO primesc pentru o victorie?

Contra unui adversar cu același rating, +16 la cubul 1. Mai mult dacă adversarul are un rating mai mare decât tine, mai puțin dacă are unul mai mic. Un cub de dublare mai mare crește schimbarea, până la dublu la cubul 64. Dacă ai jucat 50 sau mai multe partide competitive în ultimele 7 zile, toate schimbările tale se înjumătățesc.

De ce am primit mai puține puncte decât a pierdut adversarul?

Pentru că unul dintre voi a jucat 50 sau mai multe partide competitive în ultimele 7 zile. Ratingul acelui jucător se mișcă pe jumătate la fiecare partidă, și la victorii, și la înfrângeri. Schimbarea celuilalt jucător nu este afectată.

Marțul aduce mai mult ELO?

Nu. Aduce mai multe puncte la rezultat, dar ELO-ul depinde doar de victorie, de ratingul adversarului și de valoarea cubului.

Partidele Boosted îmi schimbă ELO-ul?

Nu. Doar partidele din modul Competitiv schimbă ELO-ul. Partidele Boosted aduc puncte pentru clasamentul Boosted și Sparks.

Ce se întâmplă cu ELO-ul dacă abandonez sau mă deconectez?

O partidă competitivă care se termină mai devreme se punctează ca o înfrângere obișnuită, la valoarea cubului din acel moment.

Ce s-a schimbat în formula ELO în versiunea 1.3.1?

Două lucruri. Împărțitorul din formulă a trecut de la 800 la 1200, deci favoriții sunt așteptați să câștige mai rar și pierd mai puține puncte la o înfrângere. Iar jucătorii cu 50 sau mai multe partide competitive în ultimele 7 zile au acum factorul K 16 în loc de 32.


Ai întrebări despre rating sau o idee ca să fie și mai corect? Scrie-ne la support@table-online.ro.

Joacă o partidă competitivă și pune matematica la încercare →

Preferi aplicația? Descarcă Table42 din App Store sau Google Play.

Gata să joci?

Joacă acum
Joacă acum