webForumDet fria alternativet

Rankingalgoritm

Programmering

4 svar · 478 visningar · startad av Gein

Medlem sedan sep. 20005 700 inlägg
Frågan#1

Jag är ute efter en bra algoritm för att beräkna ranking.

Matcher spelas 1 mot 1. Om en person A med lägre ranking vinner över en person B med högre ranking så ska A få mer poäng än vad B hade fått vid omvänt resultat.
Eller enklare: Man belönas mer om man vinner över en person med högre ranking.
Den poäng som adderas till vinnaren ska vara lika stor som poängen som dras av från förloraren.

Ju större skillnad mellan spelarna desto mer "poäng" delas ut.

Dessutom skulle jag vilja få in i beräkningen hur pass stor vinsten var. Matcher spelas; först till 10. Så en vinst 10-0 skulle få en större positiv effekt på rankingen än en vinst på 10-9.

Nya spelare får väl antagligen kliva in på en standardranking antar jag. Summan av allas rankingpoäng borde väl vara konstant, eller?

Finns det någon sådan beräkning redan färdig att använda sig av? Det används ju lite här och var redan.

Medlem sedan aug. 20039 340 inlägg
Medlem sedan sep. 20005 700 inlägg
#3

Underbart, ska titta igenom länken!

Medlem sedan sep. 20005 700 inlägg
#4

Nu har jag gått igenom ELO-algoritmen och den kommer att passa helt utmärkt. Tackar!

Medlem sedan sep. 20005 700 inlägg
#5

Om K varierar beroende på spelarens nuvarande rating (som det skrivs om på Wikipedia) så kommer summan av allas rating inte att vara konstant.
Säg att en spelare A använder ett K på 24 (p.g.a. sin rating) och motståndare B använder ett K på 32 (p.g.a. sin rating). Om A vinner över B så kommer inte samma summa dras från B som läggs till hos A. Således blir inte summan av den samlade ratingen vara konstant. Är detta helt i sin ordning? (Om man använder sig av ett varierande K)

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)