C++ - Risorse gratuite :: programmi,esercizi,visual,dev,compilatori,esempi,classi,strutture,liste,array,funzioni,C,java :: Leggi il Topic - Calcolo punteggio con ELO rating system, Aiuto
 FAQFAQ   CercaCerca   Lista degli utentiLista degli utenti   RegistratiRegistrati   ProfiloProfilo   Messaggi PrivatiMessaggi Privati   LoginLogin 

Calcolo punteggio con ELO rating system, Aiuto
Nuovo Topic   Rispondi    Indice del forum -> Aiuto - Altri Linguaggi
Pagina 1 di 1
Precedente :: Successivo  
Autore Messaggio
Mario79
Nuovo membro



Messaggi: 1

MessaggioInviato: Mercoledì 04 Novembre 2009    Oggetto: Calcolo punteggio con ELO rating system, Aiuto
Rispondi citando

Buongiorno a tutti Very Happy

Sono un amministratore di un forum che ha intenzione insieme ad altri colleghi di realizzare una lega per partite virtuali di calcio.
Ora sappiamo che altre leghe utilizzano un sistema di calcolo dei punteggi che si chiama Elo rating system:

E' un sistema di calcolo utlizzato per gli scacchi ed altri giochi, credo anche per manifestazioni sportive tennistiche e golfistiche.

Qui un esempio del calcolo che viene effettuato in una lega, preso dal loro regolamento, ovviamente di pubblico dominio quindi visibile a tutti:
Citazione: Espandi/Riduci

Per calcolare i punteggi viene usato l'ELO rating system:

http://en.wikipedia.org/wiki/ELO_rating_system

Rn = Ro + K × (W - We)
Rn è il nuovo rating, Ro è il vecchio rating.
K è la costante = 30

K è poi calibrato in base alla differenza reti. E' aumentato di un mezzo in caso di differenza reti di 2 gol, di 3/4 se la differenza è 3 gol, e di 3/4 + (N-3)/8 se la partita è vinta con uno scarto di 4 o più gol, dove N è la differenza reti.
W è il risultato della partita (1 per una vittoria, 0.5 per un pareggio, e 0 per una sconfitta).
We è il risultato atteso (aspettativa di vittoria), calcolato dalla seguente formula:
We = 1 / (10(-dr/400) + 1)
dr è la differenza dei rating dei due giocatori e tiene conto anche delle fasce scelte: per ogni fascia in più vengono aggiunti/tolti 80 punti a dr.


Coefficiente di correzione

Per permettere ai nuovi arrivati, che partono da 1600 punti ma ad un livello di gioco sconosciuto, di posizionarsi in classifica in base alla propria abilità, e contemporaneamente impedire che i giocatori già presenti in classifica abbiano un vantaggio o uno svantaggio per aver giocato contro avversari con il punteggio che non corrisponde alla loro abilità, esiste un coefficiente di correzione e la formula che lo determina è questa:

Q = 40/ ((3 * Pg)+10)

Q = coefficiente di correzione
Pg = partite giocate dal nuovo arrivato

Q moltiplica i punti fatti dal nuovo giocatore e divide quelli fatti dal suo avversario. Come potete vedere il coefficiente ha valore massimo 3 per la prima partita e vale solo 1, comportando nessuna variazione, dopo la decima partita. Questo coefficiente così permette al nuovo entrato di raggiungere un punteggio in classifica corrispondente alla sua abilità nel gioco senza comportare cambiamenti eccessivi nei punteggi dei giocatori vecchi.

Esiste anche un minibonus di 3 punti che viene assegnato quando un giocatore ha il "coraggio" di disputare un match contro un avversario che si trova a più di 300 punti in meno in classifica, che rappresenta più o meno un divario appena inferiore di 2 serie (esempio: serie A contro serie C1).
Il minibonus sarà accreditato al giocatore di più alta classifica indipendentemente dal risultato ottenuto sul campo...e successivamente al calcolo effetivo e solito fatto dallo script.
L'utente di bassa classifica invece, non risentirà affatto di questa innovazione...proprio perchè il minibonus viene assegnato dopo il solito calcolo.
Quando si verifica questa situazione...vedrete nel report, un "+3" colorato di rosso in aggiunta ai soliti punti aggiunti/tolti.


Ecco visto che purtroppo noi in questo siamo totalmente ignoranti, volevamo sapere se creare un qualcosa del genere è possibile, se potete farci qualcosa o darci indicazioni in merito per capirne di più, sul come creare un sistema di calcolo del genere, se c'entra qualcosa col linguaggio di programmazione C o meno...insomma ILLUMINATECI! Very Happy Very Happy Very Happy Very Happy

Grazie a tutti in anticipo :D :D :D

Ciao
Torna in cima
Profilo Messaggio privato
Mostra prima i messaggi di:   
Nuovo Topic   Rispondi    Indice del forum -> Aiuto - Altri Linguaggi
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi Topic in questo forum
Non puoi rispondere ai Topic in questo forum
Non puoi modificare i tuoi messaggi in questo forum
Non puoi cancellare i tuoi messaggi in questo forum
Non puoi votare nei sondaggi in questo forum


Powered by phpBB

 

home - esercizi base - esercizi oop - algoritmi - java - forum - info & siti amici

Siti partner: c++ maniacs . web-creations . compilatori.com