2011-09-22 85 views
7

我正在为游戏网站上的用户创建排名系统。按游戏数量计算的加权赢率百分比

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

例如:

55胜2个负= 96%的胜率

1胜0负= 100%的胜率

第一记录应该排名更高,因为它们具有更高胜数。 我敢肯定,数学是超级简单的,我只是无法用头围住它。谁能帮忙?

回答

4

ELO更彻底,因为它打进一个双赢或亏损时,会考虑对手的实力,但如果对手是随机匹配的简单和很有效果的方法是:

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

所以用0个游戏公式就是所有玩家的平均值,当你增加玩的游戏数时,公式收敛于实际记录。常数决定了它的速度有多快,你可能会选择5到20之间的东西。

-1

是的,这是“超简单”:

Percentage = Wins * 100.0/(Wins + Losses) 

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

值可以在胜场数进行加权,使用给定的比例:

Rank = Wins * Wins/(Wins + Losses) 

但也有其他系统能够理解这个问题更好,像的Elo(见我的评论)。

+0

嘿谢谢你的答案。我认为这是赢得比例的基本公式,但它没有考虑到加权因素。 1 * 100/1 = 100因此高于第一个记录。也许我的最终排名单位不应该是这个百分比,而是我通过某个过程提出的一个整数? –

+0

那么,什么可以被认为是一个重量?所玩游戏的数量不会是因为这已经反映在我的答案中的赢钱比例。我想说一个更好的分量就是玩家对抗对手的技能水平(例如赢盘比率)。但是这个问题已经被解决了,例如,在Elo排名系统中(对该词进行网络搜索)。 –

+0

当然,我会检查出Elo。我一直在看RPI和BCS作为运动的例子。我想我会做更多的思考如何以及为什么我要这样做,并回到你身边。谢谢您的帮助。 –

0

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

作为一个小技术,我已经看到了一些建议使用Wald间隔而不是Agresti-Coull。实际上,他们对于大量投入产生相同的结果。但是如果游戏的数量可能很小,那么有很好的理由选择Agresti-Coull。 (顺便说一句,我自己想出了这个想法,尽管我不是第一个—,只是后来发现它有点标准。)

0

分数=(每胜分数)*(数字)(损失点数)*(损失数量),其中每胜的点数是正数,每点损失的点数是负数,选择适合您的应用程序。