本文首发于知乎专栏“
通俗讲义—游戏数值知识大全
”,作者策划发子哥,游戏葡萄已获转载授权。
相信接触过竞技游戏的玩家对下面这个东西不会陌生:
不管遭遇过怎样坑爹的匹配经历现在都先放下,这一次我想要给大家分享的就是这个匹配系统背后一些比较核心的东西:包括
排位积分的计算方式—ELO积分的推导原理, ELO积分在竞技游戏中应用会遇到的困难
,以及
使用ELO积分的利和弊
等等。
那么开始还是从理论基础开篇(可能有点晦涩,我尽量只讲公式的合理性,公式大概的一个推导过程,尽量不讲具体的公式换算)
Ø ELO(埃洛积分)等级分的由来:
elo等级分是根据它的创立者埃洛教授名字命名的,最早用来评估国际象棋选手的实力。在埃洛以前,关于国际象棋选手排名体系已经有两套(分别是欧洲的INGO系统和美国象棋协会提出的肯尼斯·哈克尼斯等级分系统),但是这两套系统在选手实力的表现上都不够直观,所以最后才被由ELO提出的等级分系统取代!
关于
ELO分的基本印象只要记住下面三点
:最早在国际象棋评分中出现,作者是搞物理的埃洛,然后公式的来源是选手胜率评估(这点我会在后面详细解释)
ELO在解释选手对战情况时,
分为三个部分。第一部分是根据战力差来计算对战胜率
情况;多少分差对应多少胜率;
第二部分是
选手
根据对手情况和战斗结果所表现出来的水平分
;
第三部分是
选手
完成对局后实际获得的积分增长。
2.1 预期胜率计算公式
大概解释一下ELO积分预期胜率计算公式为什么是这么一个样子:
其中D代表两个选手的排位分差,大于零表示对手更强。p(D)代表战胜分差为D的玩家的概率。
这公式怎么来的?
我们知道,强手未必总是胜过弱手,实际上
任何一名选手的即时表现都应该是符合正态分布
的(围绕某一个水平上下波动)。
每个选手的表现都应该符合正态分布函数为:
其中
U代表选手的平均水平,δ代表稳定性
(表现分值的方差)。
这东西有点茫然,
画个曲线分布图来形象解释一下:
选手A:
平均表现应该是
1800分
,但是不是很稳定,有
200分左右的上下波动
(可以出现更大的偏移,但是概率极小);
选手B
:平均表现
2000分
,选手状态稳定,
波动分值在100左右
;
他们的表现符合下面两个正态分布:B和A的表现大概如下
那么在有了概率分布了,我们可以选取任何一个特殊情况分析(这里假设是1880分处)
B能战胜A的条件:
结合概率分布函数图像,
以1880分为分割点B能战胜A的条件是:A的表现少于1880,B的表现分高于1880时。
那么我们
只需要得到A得分少于1880的概率,B得分高于1880的概率,就能计算出1880分处B获胜的概率;
假设A得分小于1880的概率为Pa(1880)
假设B得分小于1880的概率为Pb(1880)
那么在1880处B能战胜A的概率
Pba(1880)=Pa(1880)* Pb(1880)
在统计学中,A表现少于1880的概率可以根据概率分布函数积分得到;B也同理。B能战胜A就是B的得分一定要在A的左边。即A、B的散点分布一定是下面灰色和红色斜线两个区域。
而像1880这样的分割点一共有无数个,所以B能战胜A的最终概率,应该是这无数个分割点B战胜A的概率的一个求和,也即是积分运算。
综合这几个步骤,就可以得出那个奇奇怪怪的积分公式ELO积分。
不过考虑到应用方便,实际的运用中并没有直接用它,而是
利用了最小二乘,得出了和它函数趋向相近的另外的一个公式,这也是我们实际运用该公式时常用的公式:
到这里我已经尽量的通俗的去解释ELO公式是怎么来的的
(这个公式不是随便写的,是符合统计规则的)有了这个公式后,我们就能根据自己和对手的分差来进行胜负模拟:
如下
(这张表后面的计算中需要用到)
2.2 表现等级分计算公式
这是ELO体系中比较重要的一个公式,他的形式是这样的:
其中:
Rp是玩家自己的表现分;Rc是对手排位分,
如果
对手不止一个就要取平均值;D(p)是胜率计算函数的反函数
,p表示参考局数内玩家的胜率;(如果只看一局的表现,那么他的胜率就只有100%和0%)举个例子如下:
D(p)的得分查胜率和积分差对应表即可,也可以根据函数去计算:(求下面这个函数的反函数即可,不再推导了)
2.3 积分迭代公式(这个才是我们实际要用到的公式)
上面的公式只能反应玩家一定局数内的表现水平,但是
实际上我们用来衡量玩家水平高低的评价分数应该是无数个短局表现分的综合结果,所以并不能直接用短期内的表现分直接取取代玩家原有的分值。
这就是经过修正后的
ELO体系积分迭代公式
,形式如下: