Sto cercando di calcolare il nostro modo di calcolare il rango. In questo momento prende semplicemente il rapporto di vincite/perdite di ogni singola voce, quindi ad es. uno ha vinto 99 volte su un 100, ha il 99% di vincita. MA se una voce ha vinto 1 su un totale di 1 voti, avrà un punteggio di vincita del 100%, ma sicuramente non può essere più alto di quello che ha vinto 99 volte. Quale sarebbe un modo migliore per farlo?Algoritmo di voto: come calcolare il grado?
risposta
A seconda di come complicato si vuole farlo, gli usi del sistema Elo scacchi (o qualcosa di simile) può essere ciò che si vuole: http://en.wikipedia.org/wiki/Elo_rating_system
Anche se una persona ha vinto 1/1 partite, il suo voto sarebbe molto al di sotto di qualcuno che ha vinto/perso centinaia di partite contro avversari duri, per esempio.
Grazie, ottima risorsa. –
se ho capito bene la domanda, allora chi ottiene più voti ha il rango più alto.
No, vedi il mio commento a dball917 sopra –
potresti anche usare qualcosa del genere per ottenere un punteggio%: punteggio = (vincere/(vincere + perso)) * 100 – infinitloop
È sempre possibile utilizzare un sistema di punti anziché un rapporto di vincita/perdita. Vincere darebbe sempre punti e quindi si potrebbe giocare con la rimozione di punti per perdere, non assegnare punti per la perdita, o assegnare meno punti per perdere. Tutto dipende esattamente da come vuoi che le persone vengano classificate. Ad esempio potresti voler assegnare 2 punti per la vittoria e 1 punto per perdere se vuoi favorire le persone che partecipano a quelli che non lo fanno (il che suona come quello di cui stavi parlando nell'esempio della persona che gioca 100 partite contro 1 gioco). Il NHL utilizza una tecnica simile per le classifiche (2 punti per una vittoria, 1 punto per una perdita di ore straordinarie, 0 punti per una perdita regolare). Questo potrebbe darti una maggiore flessibilità.
In questo modo, le nuove voci migliori non saranno MAI in grado di recuperare quelle più vecchie se utilizziamo i punti. Avranno sempre un ritardo anche se il loro rapporto vittoria/perdita è più alto. –
Sì, come ho detto dipende da cosa vuoi fare. Il post sembrava indicare che voleva favorire le persone con più giochi giocati. – dball917
Sarebbe sensato aggiungere più rango alla voce vincente se la perdita iniziale avesse un rango molto più alto, ad es. concorrente molto più forte?
provare qualcosa di simile:
votes = wins + losses
score = votes * (wins/votes)
In questo modo, qualcosa con il 50% vittorie, ma un milione di voti sarebbero ancora davanti a qualcosa con il 100% vittorie, ma solo di un voto.
È possibile aggiungere in un peso in più in base all'età (in giorni in questo esempio), anche, qualcosa di simile a
if age < 5:
score = score + ((highest real score on site) * ((5 - age)/5)
Questo metterà nuove voci a destra nella parte superiore della prima pagina, e poi si muoveranno lentamente lungo la lista nel corso dei prossimi 5 giorni (suppongo che l'età sia un numero frazionario, non solo un numero intero). Dopo che i 5 giorni sono scaduti, verranno inseriti nell'elenco basato unicamente sul punteggio del precedente bit di pseudo-codice.
Penso che tu meen punteggio = voti * (vittorie/perdite) – assaqqaf
- 1. Esiste un algoritmo per il voto anonimo, modificabile e sicuro?
- 2. Prevenire il doppio voto
- 3. Algoritmo più veloce per calcolare il determinante di una matrice?
- 4. Algoritmo di Mo per calcolare "potenza" dell'array
- 5. Algoritmo per calcolare diversi tipi di memoria
- 6. Algoritmo per calcolare l'inverso di un polinomio
- 7. algoritmo ottimale per calcolare il risultato di una frazione continua
- 8. Come calcolare la complessità esatta di un algoritmo?
- 9. Algoritmo veloce per calcolare Pi in parallelo
- 10. Algoritmo online per calcolare la deviazione assoluta
- 11. sistema di voto semplice con MongoDB
- 12. Un programma può calcolare la complessità di un algoritmo?
- 13. alla ricerca di algoritmo per calcolare h-index veloce
- 14. Come calcolare il checksum
- 15. Quale algoritmo utilizzare per calcolare una cifra di controllo?
- 16. Il modo più veloce per calcolare il grado di matrice 2 * 2?
- 17. Qual è l'algoritmo di voto "rendere tutti felici"?
- 18. Quale algoritmo usa R per calcolare la media?
- 19. Pandas groupby categoria, voto, ottieni il massimo da ogni categoria?
- 20. Informazioni sulla funzione di voto ordito
- 21. Il modo migliore per implementare il voto in un'applicazione Rails?
- 22. Come modellare un sistema di voto "Mi piace" con MongoDB
- 23. Algoritmo rapido per calcolare percentili per rimuovere i valori anomali
- 24. Come calcolare il checksum TCP
- 25. Come calcolare il seno di numeri enormi
- 26. Il miglior metodo per prevenire i giochi con voto anonimo
- 27. Algoritmo per calcolare una distanza tra 2 punti tridimensionali?
- 28. Esiste un algoritmo o una libreria in grado di rilevare il mosso delle immagini?
- 29. Algoritmo per calcolare il join nel diagramma di decisione binaria a soppressione dello zero
- 30. C# - Come calcolare la codifica ASN.1 DER di un particolare algoritmo di hash?
PS l'unica cosa che posso pensare è correggere il rango in base alla "maturità" di una voce (quante volte è stato totale nel concorso). Il rovescio della medaglia questo approccio metterebbe al bando tutte le nuove voci ottenendo i migliori ranghi solo perché non sono nuovi perché non ottengono i voti migliori (fino a che non maturano e il grado non è più aggiustato) –