竞技场积分系统ELO详解
作者kane-zhu 转自:http://hi.baidu.com/wuaiyishang/blog/item/0ea6ec8dde90d76d9f2fb463.html
来源:http://bbs.ngacn.com/read.php?tid=1284872&fpage=1
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个玩家同时死亡,则都不得分。
国际象棋rating的一些分析
这部分跟wow没有特别大的关系,拿来参考以下。
美国国际象棋联合会制定的评分及称号的标准,也是一1500作为基础分:
* 2400 及以上 超级大师
* 2200 - 2399 大师
* 2000 - 2199 专家
* 1800 - 1999 Class A
* 1600 - 1799 Class B
* 1400 - 1599 Class C
* 1200 - 1399 Class D
* 1000 - 1199 Class E
全世界有19743人 2200以上,1868人2400-2499,563人2500-2599, 123人2600-2699,18人2700-2799,只有4人打到过2800。其中包括棋王卡斯帕罗夫。
电脑深蓝如果评分的话估也计超2800。
根据这个,算一下国际象棋有多少player pool,wow arena 有多少player pool就能知道wow 竞技场大致冲能到什么分数,目前看来2600是极限了,那也是得在人很多的服务器大组上,当然中国玩家冲到2800我也不会意外的。
大致翻译完毕,加了些评论,算是第一稿翻译了,wikipedia上这篇文章就是没中文,其他语言都有。。
注1 其实围棋不用这个系统,用的是段位这个相对模糊的概念,因为围棋本身就是比象棋/国旗象棋抽象的多的一个游戏
2 wow里的k值可以通过两个1500队伍的比赛推算出,输赢个16,所以k=32
=======================================================================
mark一下,留着以后自己需要做竞技场系统时使用
竞技场积分系统ELO详解相关推荐
- 我的世界服务器积分系统,我的世界PVP地图生命积分板系统原理详解
我的世界PVP地图生命积分板系统原理详解由小编给大家带来,希望这篇我的世界PVP地图生命积分板系统原理详解,能够帮助到各位正在玩我的世界的玩家朋友们! 我的世界PVP地图生命积分板系统原理详解 大家去 ...
- EasyPR中文开源车牌识别系统 开发详解
在上篇文档中作者已经简单的介绍了EasyPR,现在在本文档中详细的介绍EasyPR的开发过程. 正如淘宝诞生于一个购买来的LAMP系统,EasyPR也有它诞生的原型,起源于CSDN的taotao ...
- Centos新建系统用户详解
2019独角兽企业重金招聘Python工程师标准>>> Centos新建系统用户详解 听语音 | 浏览:7501 | 更新:2015-02-02 18:56 | 标签:操作系统 1 ...
- linux系统安全详解
linux系统安全详解 http://www.2cto.com/Article/201207/142181.html一,BIOS安全(硬件上的安全) 1,最基本最简单的安全配置,保障计算机硬件配置等不 ...
- python try catch打印到日志_django 捕获异常和日志系统过程详解
这一块的内容很少, 异常使用try except即可, 日志只需要几行配置. 使用装饰器捕获方法内的所有异常 我使用装饰器来整个包裹一个方法, 捕获方法中的所有异常信息.并将其转为json返回客户端. ...
- 荒野行动系统推荐观战榜_荒野行动如何进行观战 荒野行动观战系统使用详解...
在荒野行动游戏中,一般玩家组队死亡之后就会退出游戏进行下一把,不过今日荒野行动全新上线了观战系统,让每一位玩家都能够在被淘汰之后,还能与队友进行互动沟通,下面就让小编为大家来介绍一下这个全新的游戏系统 ...
- Linux系统 logrotate 详解
对于 Linux 系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分 Nginx日志之类的 CRON 脚本,大家似乎遗忘了 Logrotate,争相 ...
- 戴尔台式计算机怎么安装的,戴尔Dell电脑U盘安装台式机win10系统教程详解
最近有位戴尔Dell电脑用户,在使用电脑的时候,因为操作失误导致Windows文件出现问题,需要重装系统才可以解决.因此,大白菜整理了一些u盘重装系统的资料,下面就来看看戴尔Dell电脑U盘安装台式机 ...
- linux surface pro 4 driver,重置出错?微软Win10平板Surface Pro 4重装系统教程详解
Surface Pro 4系统重置出错该怎么办? Surface Pro 4无法启动该怎办? Surface Pro 4平板如何重装Win10系统? 在Win10刚刚发布时,很多用户在升级Window ...
最新文章
- linux 内核 同步机制
- 强化学习(一)——专业术语及OpenAI Gym介绍
- boost::hana::filter用法的测试程序
- 微软在Build 2019大会上发布Fluid Framework协作平台
- ldap odbc mysql_Mysql+ODBC+OpenLDAP
- Fat Jar Eclipse Plug-In Tutorial
- 密码学在区块链中的应用 【八】
- linux 超大文件编辑,Linux 修改打开最大文件数
- 棋牌游戏服务器设计(1)
- 4. Nginx 与 PHP
- [翻译]架构师应该知道的97件事_03关键问题可能不是出在技术上
- 如何将html改成mht格式,如何编辑mht格式的文件,什么是mht?
- 魔改一波合成大西瓜!代码已开源~
- OpenCV 获取图像像素的最大最小值及其对应的位置 minMaxLoc(仅适用于单通道图像)
- 集合长度可变的实现原理(解析为什么集合长度可变)
- sql 删除唯一索引unique
- win10电脑耳机没有声音 如何在不重启电脑情况下耳机重新有声音
- 《中国互联网发展报告(2018)》发布 大数据市场交易旺盛
- unittest+tomorrow+BeautifulReport实现自动化测试的多线程
- linux 宕机 内存,Linux内存使用高,触发系统宕机