在wow lol 11平台等游戏中,都采用了一种排名算法,这种算法叫ELO,是一个叫ELO的人发明的,最开始用于国际象棋比赛计分。
R'a = Ra + K(Sa-Ea)
对于A来说,初始Rank值为Ra,一局结束后为 R'a。这里关键是K,Sa,Ea这三个参数。
Sa:这个值最简单,就是你真实输赢概率,一般胜为1,平为0.5,输为0,换算成百分比就正好是100%和0%。这个值可以理解为实际胜率,可以根据实际需求定制。
Ea:就是你期望的胜率,所谓期望就是预期,那预期的依据是什么呢?预期的依据是Ra-Rb的差,这里的A和B可以是一个队伍的平均值,也可以是两个人当前的Rank值,这取决于你是1V1还是NvN。大家都知道,概率是一个[0,1]闭区间的值,而这里的Ra-Rb是一个整数,那么如何把这个整数映射到[0,1]这个区间呢?
在最初ELO用到了一个函数来解决这个映射关系,这个函数是“正态概率密度函数”:
后来经过多次分析ELO把函数换成:
这里有一张表,是Ea的解的对应表。
有了这个表就不需要计算了。
K:这个K值是一个调节值,在wow里面初始它为32,当分数达到2000+的时候,这个值开始变小,到2400+这个值稳定在8左右。为什么这样设定,一方面保证新玩家,玩的比较好的可以快速上去,不用一直跟菜鸟打。另外就是,对一些整天打比赛的人,降低其成长速度可以让所有人的分数集中在一个比较合理的区域。