Question

Je suis en train de comprendre notre façon de calculer le rang. En ce moment, il faut simplement ratio victoires / défaites de chaque entrée, donc par exemple un gagné 99 fois sur 100, il a 99% rang gagnant. MAIS si une entrée a gagné 1 sur un total de 1 votes, il aura 100% rang gagnant, mais certainement il ne peut pas être plus élevé que de celui qui a gagné 99 fois. Quelle serait une meilleure façon de le faire?

Était-ce utile?

La solution

En fonction de la complexité que vous voulez faire, les utilisations d'échecs du système (ou quelque chose Elo similaire) peut être ce que vous voulez: http://en.wikipedia.org/wiki/Elo_rating_system

Même si une personne a gagné 1/1 matchs, sa cote serait bien inférieur à celui qui a gagné / perdu des centaines de matchs contre des adversaires difficiles, par exemple.

Autres conseils

Essayez quelque chose comme ceci:

votes = wins + losses
score = votes * ( wins / votes )

De cette façon, quelque chose avec des victoires de 50%, mais un million de voix seraient toujours en avance sur quelque chose avec 100% de victoires, mais seulement une voix.

Vous pouvez ajouter un poids supplémentaire fondée sur l'âge (en jours dans cet exemple), aussi, quelque chose comme

if age < 5:
    score = score + ((highest real score on site) * ((5 - age) / 5)

Cela mettra les entrées tout nouveau tout en haut de la première page, puis ils se déplaceront lentement la liste au cours des 5 prochains jours (je suppose l'âge est un nombre fractionnaire, non seulement un entier ). Après les 5 jours sont, ils seront mis dans la liste basée uniquement sur le score du bit précédent du pseudo-code.

Vous pouvez toujours utiliser un système de points plutôt que le rapport gain / perte. Gagner serait toujours donner des points et vous pouvez jouer soit avec la suppression des points pour perdre, pas l'attribution de points à tout pour perdre, ou l'attribution moins de points pour perdre. Tout dépend exactement comment vous voulez que les gens soient classés. Par exemple, vous pouvez donner 2 points pour gagner et 1 point pour perdre si vous voulez favoriser les personnes qui participent sur ceux qui ne le font pas (qui sonne un peu comme ce que vous parliez dans votre exemple de la personne qui joue 100 jeux vs 1 jeu). La LNH utilise une technique similaire pour le classement (2 points pour une victoire, 1 point pour une défaite en prolongation, 0 points pour une perte régulière). Cela pourrait vous donner une plus grande flexibilité.

si je comprends bien la question, alors celui qui obtient plus de voix a le rang supérieur.

Serait-il logique d'ajouter plus de rang pour gagner l'entrée si la perte de l'entrée avait à l'origine un rang beaucoup plus élevé, par exemple concurrent beaucoup plus forte?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top