2014-05-16
展开全部
Elo rating system
这个系统用来计算玩家的相对技术等级,通常用于博弈类游戏,比如国际象棋,围棋 *注1。
Elo,并不是一个缩写,而是系统发明者的姓,它本来是个改良的国际象棋积分系统,现在被广泛用于许多游戏。比如帝国时代3,星际,魔兽争霸3,unreal,guild wars等等。
组建模型
1 Elo假设每个玩家在每盘游戏中的表现是一个正态分布的随机变量,尽管选手在不同的游戏中发挥可能差异很大,但每位选手在一段时间内表现的平均值变化很小。elo用随机变量的平均值来代表选手的真正水平。(这句话基本没什么意义)
2 elo用胜平负来评价选手在某一场游戏中的表现,赢就是这场你发挥的比对手好,反之就是不好。(赢就加分,输就扣分,平手不得分),这是因为你不可能从某一手棋的好坏来评定一个选手的等级,下了一手好棋,或一串手筋就给2000分的评定,显然很难有说服力。
这两条就是大致的模型构建,当然是简化了的。。为了简化计算elo有一个true skill值给每个选手,当然这个值还有很多优化的算法,跟魔兽没什么关系。有兴趣的同学可以参照xbox live online的一个算法
http://research.microsoft.com/mlp/apg/trueskill.aspx
数学公式
正题了, 做好笔记。。
Ra: A选手当前rating Rb: B选手当前rating
Sa: 实际胜负值, 胜 = 1 平=0。5 负=0
Ea:预期A选手的胜负值,EA = 1/(1+10^[(Rb-Ra)/400])
Eb: 预期B选手的胜负值 EB = 1/(1+10^[(Ra-Rb)/400])
Ea+Eb=1
E值也是预估的胜率,所以Ea+Eb =1,
K:每场比赛能得到的最大rating,魔兽里k=32 *注2
R'a A选手一场比赛之后的rating
R'a = Ra + K(Sa-Ea)
举例讲解
A队1500分,B队1600分,预估A队的胜负值Ea = 1/(1+10^[(1600-1500)/400])=0.36
假设A队赢了,实际胜负值为Sa=1
A队最终得分为 R'a = 1500 + 32*(1-0.36) = 1500+20.5 = 1520, 赢20分 B队输20分。
假设B队赢了,预估B队胜负值Eb = 0.64
B队最终得分为 R'b = 1600 + 32*(1-0.64) = 1600 + 11.52 = 1612, 赢12分,A队输12分。
这就是为什么你赢高分队分数多,输给低分的输的也多,赢低分的分数很少。
其实K值就是这个方程的极限,所以理论上你最多可以赢一个队伍32分,实际上29-30已经差不多了,赢了不得分也是有可能的。
平局在wow竞技场里也有可能发生,最后2个玩家同时死亡,则都不得分。
这个系统用来计算玩家的相对技术等级,通常用于博弈类游戏,比如国际象棋,围棋 *注1。
Elo,并不是一个缩写,而是系统发明者的姓,它本来是个改良的国际象棋积分系统,现在被广泛用于许多游戏。比如帝国时代3,星际,魔兽争霸3,unreal,guild wars等等。
组建模型
1 Elo假设每个玩家在每盘游戏中的表现是一个正态分布的随机变量,尽管选手在不同的游戏中发挥可能差异很大,但每位选手在一段时间内表现的平均值变化很小。elo用随机变量的平均值来代表选手的真正水平。(这句话基本没什么意义)
2 elo用胜平负来评价选手在某一场游戏中的表现,赢就是这场你发挥的比对手好,反之就是不好。(赢就加分,输就扣分,平手不得分),这是因为你不可能从某一手棋的好坏来评定一个选手的等级,下了一手好棋,或一串手筋就给2000分的评定,显然很难有说服力。
这两条就是大致的模型构建,当然是简化了的。。为了简化计算elo有一个true skill值给每个选手,当然这个值还有很多优化的算法,跟魔兽没什么关系。有兴趣的同学可以参照xbox live online的一个算法
http://research.microsoft.com/mlp/apg/trueskill.aspx
数学公式
正题了, 做好笔记。。
Ra: A选手当前rating Rb: B选手当前rating
Sa: 实际胜负值, 胜 = 1 平=0。5 负=0
Ea:预期A选手的胜负值,EA = 1/(1+10^[(Rb-Ra)/400])
Eb: 预期B选手的胜负值 EB = 1/(1+10^[(Ra-Rb)/400])
Ea+Eb=1
E值也是预估的胜率,所以Ea+Eb =1,
K:每场比赛能得到的最大rating,魔兽里k=32 *注2
R'a A选手一场比赛之后的rating
R'a = Ra + K(Sa-Ea)
举例讲解
A队1500分,B队1600分,预估A队的胜负值Ea = 1/(1+10^[(1600-1500)/400])=0.36
假设A队赢了,实际胜负值为Sa=1
A队最终得分为 R'a = 1500 + 32*(1-0.36) = 1500+20.5 = 1520, 赢20分 B队输20分。
假设B队赢了,预估B队胜负值Eb = 0.64
B队最终得分为 R'b = 1600 + 32*(1-0.64) = 1600 + 11.52 = 1612, 赢12分,A队输12分。
这就是为什么你赢高分队分数多,输给低分的输的也多,赢低分的分数很少。
其实K值就是这个方程的极限,所以理论上你最多可以赢一个队伍32分,实际上29-30已经差不多了,赢了不得分也是有可能的。
平局在wow竞技场里也有可能发生,最后2个玩家同时死亡,则都不得分。
2014-05-16
展开全部
网站上写的很详细啊..http://www.wowchina.com/info/pvp/arena/calculator.shtml
你阔仪自己去看下..
你阔仪自己去看下..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询