2010-01-22 457 views
6

我想找出一个计算排名的方法。现在它只需要每个单独条目的赢/输比例,例如, 100人中有99人获胜,它有99%的获胜等级。但是如果一个条目在总共1票中获胜,那么它将获得100%的胜率,但绝对不能高于99胜。什么是更好的方法来做到这一点?投票算法:如何计算排名?

+0

PS我唯一能想到的就是根据一个条目的“成熟度”(比赛总次数是多少)来纠正排名。另一方面,这种方法将禁止所有新条目仅因为它们是新的而不是因为它们没有得到最高票(直到它们“成熟”并且不再调整排名)而被列为最高排名 – 2010-01-22 17:48:18

回答

5

根据你想多么复杂,使它的系统的Elo棋使用(或类似的东西)可能是你想要什么:http://en.wikipedia.org/wiki/Elo_rating_system

即使一个人赢得比赛1/1,他的评价是例如,远远低于已经赢得/输掉了数百场对抗强硬对手的比赛的人。

+0

谢谢,优秀的资源。 – 2010-01-22 18:06:57

0

如果我正确地理解了这个问题,那么得到更多选票的人有更高的等级。

+0

不,请参阅我的评论dball917以上 – 2010-01-22 18:02:52

+0

你也可以用这样的东西得分: 得分=(赢/(胜+失))* 100 – infinitloop 2010-01-22 19:47:11

1

您总是可以使用积分系统而不是赢/输比率。获胜总是给分,然后你可以玩弄丢失点数,不丢失点数,或者奖励失分点数。这完全取决于你希望人们如何排名。例如,如果您想要参与那些不参与竞争的人(这听起来有点像您在谈论打100场比赛的人时所说的话),那么您可能想要获得2分的胜利和1分的失败, 1场比赛)。 NHL使用类似的技术进行排名(2分为赢,1分为加时损失,0分为常规损失)。这可能会给你更多的灵活性。

+1

这种方式新的更好的条目将永远不能赶上老年人,如果我们使用积分。即使他们的赢/输比率更高,他们也总是会有滞后。 – 2010-01-22 18:02:08

+0

是的,就像我说的,这取决于你想做什么。这个帖子似乎表明他想要赞成玩更多游戏的人。 – dball917 2010-01-22 18:06:33

0

如果失去入口原本的排名高得多,例如增加更多排名,是否有意义?更强大的竞争对手?

6

尝试这样:

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

这样一来,一些与50%的胜利,但万票仍然是未来的东西用100场%的胜利,但只有一票。

你可以根据年龄(以天为单位在这个例子中)的额外的重量增加,也像

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

这将使全新的条目就在第一页的顶部,然后他们会在接下来的5天内缓慢地向下移动(我假设年龄是一个分数,而不仅仅是一个整数)。 5天后,它们将被放入列表中,仅仅基于前一位伪代码的分数。

+1

我认为你meen得分=选票*(胜/负) – assaqqaf 2011-12-03 14:31:45