我试图找出我们计算排名的方法。现在只计算每个条目的赢/输比率,例如,100 次中赢了 99 次,它有 99% 的赢率。但是如果一个条目赢得了总票数中的 1 个,它将有 100% 的获胜排名,但绝对不能高于赢得 99 次的那个。有什么更好的方法来做到这一点?
5 回答
尝试这样的事情:
votes = wins + losses
score = votes * ( wins / votes )
这样一来,获得 50% 的胜利,但有一百万张选票仍将领先于获得 100% 的胜利,但只有一票。
您也可以根据年龄(在本例中以天为单位)添加额外的重量,例如
if age < 5:
score = score + ((highest real score on site) * ((5 - age) / 5)
这会将全新的条目放在第一页的顶部,然后它们将在接下来的 5 天内缓慢地在列表中向下移动(我假设年龄是一个小数,而不仅仅是一个整数)。在 5 天结束后,它们将仅根据前一点伪代码的分数被放入列表中。
根据您想要使其复杂程度,Elo 系统国际象棋使用(或类似的东西)可能是您想要的:http ://en.wikipedia.org/wiki/Elo_rating_system
例如,即使一个人赢得了 1/1 的比赛,他的评分也会远远低于在与强硬对手的比赛中赢/输数百场的人。
您总是可以使用积分系统而不是赢/输比率。获胜总是会给予积分,然后你可以玩弄,要么为失败而取消积分,要么为失败而完全不奖励积分,或者为失败给予更少的积分。这完全取决于您希望人们如何排名。例如,如果您想支持参与的人而不是不参与的人(这听起来有点像您在玩 100 场比赛的人与1 场比赛)。NHL 使用类似的排名技术(获胜 2 分,加时赛失利 1 分,常规失利 0 分)。这可能会给你更多的灵活性。
如果我正确理解了这个问题,那么获得更多选票的人排名更高。
如果失败的条目最初具有更高的排名,例如更强大的竞争对手,那么为获胜条目添加更多排名是否有意义?