Elo Rating System

  很多游戏都需要用到打分系统,比如11平台的天梯,魔兽世界的竞技场,还有国际象棋。Elo Rating System就是一个用来计算二人(或两个团队)竞技游戏中各个选手(团队)等级的算法。该算法由匈牙利裔美籍物理学家Arpad Elo发明。

  在打分系统中,每个选手都有一个数字,代表其等级。数字越大的选手等级越高,而分数是由和其他选手竞技得来的,赢得比赛就加分,输掉比赛则扣分。赢得或输掉的分数取决于对战双方的等级差距。比如,如果一个选手A赢了一个比他等级高很多的选手B,则A的等级就会提高跟多,B的等级则会降低很多,反之,如果选手A赢了一个等级远低于自己的选手B,则A的等级不会上升很多,而B的等级也不会下降很多。

  假定选手A的真实等级为RA,选手B的真实等级为RB,那么,选手A的等级的期望值为:

 公式-1

  相似地,选手B的等级的期望值为:

 

  上述两个式子还可以写作:

 

  其中:

 

 

  更新选手A的等级的公式为:

 

  其中RA为A选手现在的等级,EA可由公式-1求得,K是一个常数,对于等级比较高的选手,K值可以设置的小一点,对于等级比较低的选手,K值可以设置的大一点,代表着等级越高的选手提升的空间越小。SA代表着本次比赛的胜负,若A胜,则SA=1,若A输,则SA=0,若平局,则SA=0.5。

  举例说明:若A选手当前的等级为1300,B选手当前等级为1200,假设A输给了选手B,设K=32,则A的等级变为1279,B的等级变为1220。

  关于K的取值,在美国国际象棋联盟(USCF)中是如下规定的:

选手等级 K值
0-2099 32
2100-2399 24
2400以上 16

 

 

参考文献:

  [1] Wikipedia-Elo Rating System

  [2] Elo Rating System-Cody的记事本

  [3] Elo Rating System dragoniye的博客

 

 

posted on 2012-11-09 22:23  潘的博客  阅读(1237)  评论(0编辑  收藏  举报

导航