按比赛场次加权的胜率

10

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

该系统应基于加权胜率,其中加权元素是游戏次数。

例如:

55胜2负=96%胜率

1胜0负=100%胜率

第一条记录应排名更高,因为他们获胜次数更多。

我相信这个数学问题非常简单,但我无法理解。 有人可以帮忙吗?

4个回答

7
ELO更加全面,因为它在计算胜利或失败时考虑了对手的强度,但如果对手是随机匹配的,则一个简单而非常有效的方法是:
(胜利次数 + 常数 * 所有玩家平均胜率)/(胜利次数 + 失败次数 + 常数)
因此,当游戏数量为0时,该公式是所有玩家的平均值。随着游戏数量的增加,该公式会收敛于实际记录。常数确定了这样做的速度,您可以选择在5到20之间选取某个数字。

1

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

 Percentage = Wins * 100.0 / (Wins + Losses)

通常情况下,要将数字四舍五入为整数,您可以使用roundMath.round(但您没有指定编程语言)。
该值可以根据获胜次数进行加权,使用给定的比率:
 Rank = Wins * Wins / (Wins + Losses)

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


嘿,感谢你的回答。我认为那是胜率的基本公式,但它没有考虑到加权元素。1 * 100/1 = 100,因此比第一条记录高。也许我的最终排名单位不应该是百分比,而是一个整数,我可以通过某个过程得出? - Dave Chenell
什么可以被视为权重?已经在我的答案中反映了比赛次数,因此不会是这个。我认为更好的权重应该是球员所面对的对手的技能水平(例如胜负比)。但是这个问题已经得到解决,例如在Elo排名系统中(搜索一下这个术语)。 - Peter O.
好的,我会查看Elo。我也一直在研究RPI和BCS作为体育示例。我想我会再思考一下我想要做什么以及为什么要这样做,并回复你。感谢你的帮助。 - Dave Chenell

0

另一种可能性是我的回答如何对这些“有用”的分数进行排序?。基本上,使用胜利次数来确定玩家赢得比赛的概率范围,然后取较低的端点。这使得在任何合理的置信水平选择下,55-2击败了1-0。(缺乏其他原因,我建议将其设置为50%--请参阅帖子中的详细信息,这实际上非常简单。)

作为一个小的技术细节:我看到一些建议使用Wald区间而不是Agresti-Coull。实际上,对于大量输入,它们会给出相同的结果。但是,如果游戏数量可能很少,则有充分的理由更喜欢Agresti-Coull。(顺便说一下,我自己想出了这个想法 - 虽然肯定不是第一个人 - 只是后来发现它有些标准。)


0
如何使用 score = (每场胜利得分) * (胜利次数) + (每场失败得分) * (失败次数) 的公式,其中每场胜利得分是某个正数,每场失败得分是某个负数,这些数字的选择应该适合您的应用程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接