按比赛次数加权胜率

时间:2011-09-22 03:24:53

标签: math ranking weighted

我希望为游戏网站上的用户创建排名系统。

系统应该基于加权胜率,加权元素是所玩游戏的数量。

例如:

55胜2负= 96%胜率

1胜0负= 100%胜率

第一张唱片的排名应该更高,因为他们的获胜次数更多。 我确信数学非常简单,我无法绕过它。有人可以帮忙吗?

4 个答案:

答案 0 :(得分:4)

ELO更加彻底,因为它在得分或失败时考虑了对手的实力,但如果对手是随机匹配的,那么简单且非常有效的方法是:

(胜率+常数*所有玩家的平均胜率%)/(胜利+损失+常数)

所以在0场比赛中,公式是所有球员的平均值,因为你增加了比赛的游戏数量,实际记录收敛了公式。常数决定了它的速度,你可以选择5到20之间的东西。

答案 1 :(得分:0)

是的,这是“超级简单”:

 Percentage = Wins * 100.0 / (Wins + Losses)

要舍入为整数,通常使用roundMath.round(但未指定编程语言)。

可以使用给定比率对胜利数量加权:

 Rank = Wins * Wins / (Wins + Losses)

但还有其他系统可以更好地理解这个问题,比如Elo(请参阅我的评论)。

答案 2 :(得分:0)

另一种可能性是我对How should I order these “helpful” scores?的回答。基本上,使用获胜次数来确定玩家赢得比赛的可能性的可能范围,然后采用较低端。对于任何合理选择的置信水平,这使得55-2击败1-0。 (由于缺乏理由,我建议将其设置为50% - 请参阅帖子了解详细信息,实际上非常简单。)

作为一个小技术:我已经看到一些建议使用Wald区间而不是Agresti-Coull。实际上,它们为大输入提供相同的结果。但如果游戏数量可能很少,那么有充分的理由选择Agresti-Coull。 (顺便说一下,我自己想出了这个想法 - 虽然我不是第一个 - 后来才发现它有点标准。)

答案 3 :(得分:0)

得分=(每胜一分)*(胜利数)+(每次失分数)*(亏损次数),其中每次胜出的积分是一些正数而每次失分的积分是一些负数,选择为适合你的应用。