10

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

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

例如:

55胜2负=96%胜率

1胜0负=100%胜率

第一个记录应该排名更高,因为他们的获胜次数更多。我确信数学非常简单,我就是无法理解它。任何人都可以帮忙吗?

4

4 回答 4

7

ELO 更彻底,因为它在计算输赢时会考虑对手的实力,但如果对手是随机匹配的,一个简单且非常有效的方法是:

(赢 + 常数 * 所有玩家的平均赢百分比)/(赢 + 输 + 常数)

因此,对于 0 场比赛,该公式是所有玩家的平均值,随着您参加的比赛次数的增加,该公式会收敛于实际记录。该常数决定了它执行此操作的速度,您可能可以选择 5 到 20 之间的值。

于 2011-09-22T04:05:34.937 回答
1

是的,它“超级简单”:

 Percentage = Wins * 100.0 / (Wins + Losses)

要舍入到您通常使用的整数roundMath.round(但您没有指定编程语言)。

该值可以使用给定的比率根据获胜次数加权:

 Rank = Wins * Wins / (Wins + Losses)

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

于 2011-09-22T03:32:11.767 回答
0

另一种可能性是我对如何订购这些“有用”分数的回答?. 基本上,使用获胜次数来确定玩家赢得比赛的可能性的可能性范围,然后取低端。对于任何合理的置信水平选择,这使得 55-2 击败 1-0。(没有理由不这样做,我建议将其设置为 50% - 详情请参阅帖子,这实际上非常简单。)

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

于 2011-09-22T05:50:22.283 回答
0

分数如何=(每胜分)*(胜数)+(每败分)*(败数),其中每胜分是一些正数,每场失分是一些负数,选择适用于你申请。

于 2011-09-22T13:51:34.330 回答