投票算法:如何计算排名?

mvb*_*fst 6 voting ranking rank voting-system

我试图找出一种计算排名的方法.现在它只需要获得每个单独输入的赢/输比率,因此例如一个赢得了100次中的99次,它有99%的获胜等级.但是如果一个条目在总共1个选票中赢得1个,它将获得100%的胜利排名,但绝对不能高于赢得99次的那个.什么是更好的方法来做到这一点?

pib*_*pib 6

尝试这样的事情:

votes = wins + losses
score = votes * ( wins / votes )
Run Code Online (Sandbox Code Playgroud)

这样,50%的胜利,但百万票仍然领先于100%胜利,但只有一票.

您可以根据年龄(在此示例中为天数)添加额外的重量,例如

if age < 5:
    score = score + ((highest real score on site) * ((5 - age) / 5)
Run Code Online (Sandbox Code Playgroud)

这将把全新的条目放在第一页的顶部,然后它们将在接下来的5天内缓慢向下移动(我假设年龄是一个小数,而不仅仅是一个整数).在5天之后,它们将仅根据前一段伪代码的分数放入列表中.


z *_* - 5

根据您想要制作的复杂程度,Elo系统国际象棋使用(或类似的东西)可能是您想要的:http://en.wikipedia.org/wiki/Elo_rating_system

即使一个人赢得了1/1的比赛,他的评分也会远低于那些赢得/输掉数百场对抗强硬对手的人.