我在试着想出一个计算排名的方法。现在,它只是简单地计算每个条目的胜负比,例如,一个100次中有99次获胜,它有99%的获胜排名。但是,如果一个参赛作品在总共1张选票中赢得了1张,那么它将拥有100%的获奖排名,但它肯定不会比99次获奖的参赛作品更高。有什么更好的方法可以做到这一点?
发布于 2010-01-23 01:54:20
根据您想要制作的复杂程度,Elo系统国际象棋使用(或类似的东西)可能是您想要的:http://en.wikipedia.org/wiki/Elo_rating_system
例如,即使一个人赢得了1/1的比赛,他的评分也会远远低于那些在与顽强对手的比赛中赢/输了数百场比赛的人。
发布于 2010-01-23 02:24:17
尝试如下所示:
votes = wins + losses
score = votes * ( wins / votes )这样,50%的人获胜,但100万张选票仍然领先于100%获胜但只有一票的人。
您还可以根据年龄添加额外的权重(在本例中以天为单位),如下所示
if age < 5:
score = score + ((highest real score on site) * ((5 - age) / 5)这将把全新的条目放在第一页的顶部,然后它们将在接下来的5天内缓慢地向下移动(我假设年龄是一个小数,而不仅仅是一个整数)。在5天结束后,它们将被放入列表中,完全基于上一段伪代码的分数。
发布于 2010-01-23 01:54:21
你可以一直使用积分系统,而不是输赢比率。获胜总是会得到积分,然后你可以玩游戏,要么因为输了而扣分,要么因为输了而根本不给分,或者因为输了得少分。这完全取决于你希望人们如何排名。例如,如果你想要偏爱那些参与的人而不是那些不参与的人,你可能想给赢2分,输1分(这听起来有点像你在玩100场比赛对1场比赛的例子中谈到的)。NHL使用类似的排名技术(胜利得2分,加时赛输1分,常规输球得0分)。这可能会给你带来更多的灵活性。
https://stackoverflow.com/questions/2119242
复制相似问题