数值 ELO算法教程

article/2025/11/9 11:34:02

ELO是什么?
是指由匈牙利裔美国物理学家阿帕德·埃洛创建的一个衡量各类对弈活动水平的评价方法,是当今对弈水平评估的公认的权威方法。被广泛用于国际象棋、围棋、足球、篮球等运动。

埃洛排名系统是基于统计学的一个评估棋手水平的方法。美国国际象棋协会在1960年首先使用这种计分方法。由于它比先前的方法更公平客观,这种方法很快流行开来。1970年国际棋联正式开始使用这个系统。

换言之,就是一个叫ELO学霸,做了一个算法取名叫ELO,大家玩LOL和DOTA的时候匹配就是通过这个算法做的。

ELO不是孙悟空。
As we all know,一个LOL玩家,或者象棋大师,在职业身涯中会因为各种情况导致自身的实力波动,且主观难以控制。比如说,二狗在打LOL的时候突然腹泻,导致无法操作,最后满盘皆输。再比如说,某象棋大师老来得子,春风得意马蹄疾,气势如龙,以摧枯拉朽之势虐爆各种强敌。

我们认为,在某一个人的身上,其生涯实力总体在某一特定水平波动。虽然有可能会出现大波动,但通常情况下出现大波动的可能性较低。

说道这里,我们需要对ELO算法进行假设:

l 某个选手,在某一分段区间内的波动属于正常现象。

l 在某一分段区间内的选手,水平大致相同,胜出的期望也大致相同。

那么在样本量足够大的情况下,我们可以认为,出现异常情况(期望胜率大于50%时失败)是可以被允许的。

上图杀猫!
ELO算法教程

这是国际棋联FIDE所用200为一分段的Rank区间。弄一个称号显得高大上,信达雅。



不是学霸不要紧,看到公式不要怕!

*这一章的公式比较多,看起来很复杂,但是跟着楼主的思路慢慢走,你会发现其实很简单,千万别着急。


想必大家都知道,其实高手不一定总能赢比他弱一些的选手,就比如LOL钻石1的选手不一定每次都能赢钻石5的选手,因此ELO先是采用了统计学的正态分布函数来表示一名选手在比赛时的波动表现。在这个奇妙的函数中,隐藏着另一个叫做“正态概率密度”函数,虽说长得有点难看,各位就将就一下:

ELO算法教程


但是经过多次的模拟和分析,学霸ELO发现其实选手在比赛中的表现更接近于逻辑斯谛分布,因此有了下面这个看上去好看一点的推导公式:

A对B的期望胜率:

反之,得到B对A的期望胜率:

最终,我们得到这样一个最简化公式:(后面和有一个附加值公式,我们先分析这个)

ELO算法教程


Sa表示队伍A的比赛结果,胜利S值为1,平局S值为0.5,失败S值为0
Ra(A’s RankScore):表示队伍A当前的Rank分
Rb(B’s RankScore):表示队伍B当前的Rank分

D=Ra-Rb:就是A和B的Rank分差
Ea:表示A在这场比赛中的期望胜率
Eb:表示B在这场比赛中的期望胜率
则有Ea+Eb=1,上式中P(D)=Ea

出题的时间到了,各位同志们注意看!
狗蛋LOL2000分,铁锤LOL1950分,父子局SOLO,那么狗蛋成为爸爸的概率多大?
由上式推得,狗蛋Ra=2000,铁锤Rb=1950,那么D=Ra-Rb=50,那么:

ELO算法教程



也就是说,狗蛋能成为爸爸的概率是57.1%,同时狗蛋也会有42.9%的概率成为儿子。
继续大图杀猫:
下图是对D所有取值的胜率期望表

ELO算法教程


守关Boss就在眼前,各位同学,切勿掉以轻心!
如果在多次比赛中,实际上我们真正要通过P(D)计算的是另一个变量,暂且将其称之为W(win),不过由于P(D)实际上是计算的期望胜率,因此必须让W带上e变成我们需要的We(预期胜率和)

多场比赛后,一般为

ELO算法教程

我们为什么不用W?因为W是实际得分率,下面会用到。

W作为实际得分率,有且只有三个取值

胜利:100%=1

打平:50%=0.5

失败:0%=0

此时还不够,因为我们必须要为不同分段的选手们引入一个常数K,这个常数的作用暂时不表,留作课后习题。

天空一阵巨响,公式闪亮登场
ELO算法教程



Rn:赛事后的新Rank分

Ro:赛事前的原Rank分

出题时间又到了,同志们别开小差!
狗蛋和自己的小伙伴们参加了街道举办的小学生杯LOL锦标赛,他们的队伍Rank分是2000分,比赛中遇到了土蛋(2150分),野蛋(1870分)和铁蛋(1920分)队。最终,狗蛋队凭借超人的意志力和娴熟的操作,战胜了野蛋和铁蛋队,但是遗憾地输给了土蛋队。那么经过这次举世瞩目的比赛,狗蛋队最终的得分是多少呢?(此处,赋值K=20)

通过读题我们发现,W=0+1+1=2(负1胜2)

那么最核心的一步就是计算We了:

ELO算法教程

ELO算法教程

ELO算法教程

然后我们再带入公式:

Rn=2000+20×(2-1.589)≈2008

狗蛋队最终得分是2008分。

有关ELO算法的讲解到此结束了,在课后,我会留几道题目给大家。再此之前呢,我还要把最后一点东西讲完,希望大家不要厌烦。

为了防止某一个玩家连胜,或者连败,为游戏和用户体验带来消极的影响,我们会在Rank分中加入一个临时常数Ri,该常数在匹配时会使玩家匹配到更低或者更高的分段,并且在Rank分差D=Ra-Rb-Ri中体现。这个常数的引入有什么好处就一并留作课后思考吧。

1. K取1和100时会出现什么样的情况?

2. K的取值大小会对Rank分造成什么影响?

3. K的取值大小在游戏中实际对玩家造成了什么影响?

4.我们应该如何为K赋值?


本文不允许任何形式的转载。

国际棋联.jpg (71.03 KB, 下载次数: 37322)

国际棋联.jpg

QQ截图20131028212950.png (9.95 KB, 下载次数: 246)

QQ截图20131028212950.png

EB.jpg (841 Bytes, 下载次数: 203)

EB.jpg

EA.jpg (837 Bytes, 下载次数: 196)

EA.jpg


http://chatgpt.dhexx.cn/article/KlaIXumW.shtml

相关文章

使用WaveOut API播放WAV音频文件(解决卡顿)

虽然waveout已经过时,但是其api简单,有些时候也还是需要用到。 其实还是自己上msdn查阅相应api最靠谱,waveout也有提供暂停、设置音量等接口的,这里给个链接,需要的可以自己查找: https://msdn.microsoft.c…

使用WaveIn录制音频并且使用WaveOut播放音频

在Windows下开发音频的方式有多种,但是最简单,也是最灵活的就是Wave系列API,今天我们一起用WaveIn和WaveOut实现一个音频录制和音频播放器,具体界面如下: 录制步骤如下: void CcbdDlg::OnBnClickedButtonS…

WaveOut播放声音死锁问题原因

1.首先我们复习下造成死锁的几个充要条件: 1)互斥:互斥资源,只能被一个进程使用 2)不剥夺:非抢占式调度,不能强行抢用其他进程资源 3)请求和保持:占有着资源不释放&am…

C++ 使用waveOut实现声音播放

文章目录 前言一、需要的对象及方法1.对象2.方法 二、整体流程三、关键实现1.声音格式2.对象池 四、封装成对象1.接口设计2.具体实现 五、使用示例总结 前言 在Windows上实现声音播放比较简单的方法是使用winmm,其中的waveOut模块就可以打开声音设备,播…

windows下使用waveOut播放音频pcm

目录 一、前言 二、waveOut主要API介绍 三、waveOut播放PCM音频框架 《Windows平台使用waveOut播放PCM数据代码实现》链接&#xff1a; https://edu.csdn.net/learn/38258/606147?spm1003.2001.3001.4157 一、前言 在<windows下directShow音视频采集>一篇文章中就介…

双缓冲方法实现waveOut的连续无卡顿播放以及即收即放

1. waveOut基本使用方法 waveOut是一套历史悠久的Windows音频API&#xff0c;虽然古老&#xff0c;但至今仍运行良好&#xff0c;且支持老旧系统&#xff08;原生支持Windows XP&#xff09;。 waveOut虽然不像DirectSound那样自带混音功能&#xff0c;但也可以通过同时开多个…

清华牛逼!

如果让你用尽可能多的词语形容一名女子的美貌&#xff0c;你会怎么说&#xff1f; “这女孩太美了&#xff0c;闭月羞花、沉鱼落雁不足以形容起美貌。那身段令貂婵蒙羞&#xff0c;那脸蛋令月亮失色。那眼睛&#xff0c;那鼻子&#xff0c;那小嘴&#xff0c;那胸脯&#xff0c…

博士申请 | 上海交通大学叶南阳老师招收计算机视觉/机器学习方向博士生

合适的工作难找&#xff1f;最新的招聘信息也不知道&#xff1f; AI 求职为大家精选人工智能领域最新鲜的招聘信息&#xff0c;助你先人一步投递&#xff0c;快人一步入职&#xff01; 上海交通大学 上海交通大学约翰霍普克罗夫特计算机科学中心于 2017 年 1 月正式成立&#x…

硬核实力!西安交大人工智能学科到底有多强?

人工智能 是时下最火的科技词汇之一 人工智能 作为引领未来的战略性技术 正默默改变着人类的生产生活 西安交大人工智能研究是国内高校的先驱 拥有强大的学术实力 科研成绩斐然 斩获国内外多项荣誉 今天 跟着小编一起走进交大人工智能 漫步科学殿堂 西安交通大学人工智能学科发…

清华大学交叉信息研究院姚班修改培养模式:姚班、智班、量信班全合并

机器之心报道 编辑&#xff1a;杜伟、泽南 拓宽优秀学生的选择方向。 清华大学交叉信息研究院宣布了优化本科培养模式的新计划&#xff1a; 为进一步拓宽学生基础学养&#xff0c;并优化专业方向选择&#xff0c;特调整本科生培养模式&#xff0c;具体要点如下&#xff1a; 1、…

我的2020推免之路:清叉、TBSI、贵系、中山、国防科大、自动化所

我的2020推免之路&#xff1a;清叉、TBSI、贵系、中山、国防科大、自动化所 一.前言二.个人情况三.夏令营清华大学交叉信息学院&#xff08;6.13~6.14&#xff09;清华-伯克利深圳学院&#xff08;7.2~7.9&#xff09;清华大学计算机系&#xff08;7.8~7.9&#xff09;中山大学…

清北浙交大比拼,南大强势上榜,AI到底哪家强?

作者 | 阿司匹林 编者注&#xff1a;近日&#xff0c;上海交通大学和武书连编制的两份比较有影响力的大学排行榜先后发布。这两份榜单的最终排名虽然存在一定的差异&#xff0c;但是都将清华大学、北京大学、浙江大学、上海交通大学、以及复旦大学排在了前五&#xff08;先后顺…

2022 ACM杰出会员揭榜:清华黄隆波、刘世霞,北大郝丹、刘譞哲等23位华人学者入选!...

来源&#xff1a;新智元 2022年度ACM杰出会员&#xff08;Distinguished Member&#xff09;名单公布&#xff01; 本次评选设有三个奖项&#xff0c;分别表彰在计算机领域做出的教育贡献、工程贡献和科学贡献。 今年共有67名会员入选。其中有23位是华人&#xff08;中国大陆6人…

科研实习 | 清华大学交叉信息研究院弋力老师课题组招收科研实习生

合适的工作难找&#xff1f;最新的招聘信息也不知道&#xff1f; AI 求职为大家精选人工智能领域最新鲜的招聘信息&#xff0c;助你先人一步投递&#xff0c;快人一步入职&#xff01; 清华大学 弋力博士于2021年7月加入清华大学交叉信息研究院任助理教授&#xff0c;博士生导师…

数说CS | 北大叉院推免生源大起底!

写在前面 北京大学前沿交叉学科研究院是怎样的一个存在&#xff1f;研究方向与其他学院有什么不同&#xff1f;学术氛围如何&#xff1f; 今天&#xff0c;岛主将会带领各位一同了解北大叉院&#xff0c;从学院介绍、培养特色、优营生源分析等板块为大家深入剖析&#xff01;…

北理工通报方岱宁院士处理结果

点击进入—>3D视觉工坊学习交流群 12月7日&#xff0c;北京理工大学发布《情况通报》&#xff0c;通报“教师方岱宁相关视频事件”处理结果。 据通报&#xff0c;经查核&#xff0c;视频内容是方岱宁今年7月初在线参加学术会议时发生的事情&#xff0c;因其行为失范&#xf…

2020cs线上保研之路 清华北大交大复旦自动化所计算所

2020计算机线上保研 清华北大交大复旦自动化所计算所 无聊在飞机上编辑的这几个月来的经历吧。我真的感觉好累&#xff0c;巨累。该死的疫情。 今年保研&#xff0c;往届的学长学姐的去路都没有什么参考性了&#xff0c;一个原因在于cs内卷更严重了&#xff0c;另一个因为疫情…

直播预告 | 清华叉院助理教授赵行、在读博士生孙桥:自动驾驶中的行为交互

本期为TechBeat人工智能社区第421期线上Talk&#xff0c;响应大家希望实时交流的需求&#xff0c;本次Talk是&#xff01;直&#xff01;播&#xff01; 北京时间7月13日(周三)20:00&#xff0c;我们很开心邀请到老朋友——清华叉院助理教授赵行老师和他的学生孙桥&#xff0c;…

清华大学交叉信息研究院招收计算机图形学、机器学习方向博士

来源&#xff1a;机器之心 课题组简介杜韬博士于 2022 年秋季加入清华大学交叉信息研究院担任助理教授&#xff0c;领导课题组开展计算机图形学和机器学习相关方向的研究。课题组常年招收博士生、科研助理、实习生、访问学生、助理研究员等&#xff0c;部分职位工作地点可选北京…

生源985占比100%,北大叉院这个专业本校学生也心仪~

1、院校介绍 北京大学前沿交叉学科研究院下的大数据研究中心是中国交叉学科的先锋&#xff0c;主要学科为数据科学&#xff0c;现设数据挖掘方法、大数据软件技术、大数据安全技术、健康医疗大数据以及交通大数据等9个研究方向。 北大叉院大数据研究中心科研实力强大&#xf…