当前位置:网站首页>通过ELO机制衡量各类对弈活动水平
通过ELO机制衡量各类对弈活动水平
2022-06-29 07:54:00 【算法与编程之美】
0 引言
在日常生活中有许多的比赛,如一对一的象棋、围棋等棋类比赛,也有队伍之间的比赛,如足球、篮球等球类比赛。在这些比赛中,我们总会知道有一些很强的选手、很强的队伍,但是,他们到底有多强?又或者说,我们都觉得某个选手甲比选手乙要强,可是甲比乙强了多少呢,是有六成胜率,还是八成胜率,还是几乎必胜?能不能通过数学的方法来量化这个问题?
因此,elo等级分系统诞生了。
Elo等级分系统是指由匈牙利裔美国物理学家阿帕德·埃洛创建的一个衡量各类对弈活动水平的评价方法,其目的便是为了解决如上的问题。
1 问题
怎样去衡量比赛选手水平?如何通过python实现elo分数?
2 方法
Elo的想法很简单,比大小。如果我们能用一个分数去评估选手的实力,甲2000分,乙1800分,2000比1800要大,那就说明甲的实力是要强于乙的。
但是,乙也有战胜甲的可能。因为甲可能在某场比赛中发挥失常,只发挥出了1800的水平,而乙发挥超常,达到了2000分的水平,这样乙就战胜了甲。
为了解决这个问题,我们可以不妨认为选手的发挥是服从正态分布的——比如甲服从平均值为2000的正态分布,就是在说他有极大多数时候的发挥水平都在2000附近,也有很低的可能到1800以下或者2200以上。这样,根据正态分布的公式,就能得到选手之间的预期胜率。这个公式本来是个比较难以计算的积分式,但是可以用非常简单的另一个近似公式计算。
现在我们可以用一个分数来代表一个选手的实力水平了,现在甲乙选手各有自己的等级分,如果他们进行比赛,赢的一方代表他的实力更强,因此应当提高胜方的elo积分,同理也要降低败方的elo积分。
比如目前甲是1500分,乙是1600分。我们知道,甲乙对战,明显乙更容易占优势,因此如果乙胜利
现在甲乙进行竞技,根据公式,
如果甲胜利了,甲将更新他的elo等级分为1520.5分,而乙的积分将掉到1579.5分,相当于扣除了乙的20.5分给甲。如果乙胜利了,将扣除甲的12分给乙,甲变为1488分,乙变为1612分。
而如果是实力相差悬殊的比赛,甲2000分对阵乙1200分,甲的预期胜率已经极度接近100%,那么他们的elo分不会发生任何变化。
我们不妨假设,在某一个特定时期,一位选手的平均实力不会出现较大的波动,那么他进行的比赛次数越多,他的elo等级分就会越来越接近他的真实实力的等级分。
现在我们可以将一个队伍看成是一名选手,这样在队伍比赛的时候,就可以得到某支队伍的elo等级分了。
3 实验结果与讨论
代码清单 1
| Calss Eloscore: ELO_RESULT_WIN=1 ELO_RESULT_LOSS=-1 ELO_RESULT_TIE=0 ELO_RATING_DEFAULT=1500 ratingA=0 ratingB=0 def __init__(self): self.ratingA= ratingA self.ratingB= ratingB def comuteK(self,rating1,rating2): return 1/(1+pow(10,(rating2-rating1)/400)) if __name__==’__main__’: eloscore=Eloscore() print(eloscore.computeScore(1500,1800)) print(eloscore.computeK(1500)) print(eloscore.computeK(1800)) |
4 结语
针对许多类似球类,游戏等对弈的公平性问题,使用elo机制分数衡量方法,通过求elo分数实验,证明出可以用elo机制衡量个人选手或者队伍水平,以达到游戏或比赛的公平性。本方法只是单方面考虑比赛成绩,没有顾及到另外方面的特殊情况,所以要想更公平的实现比赛等,还需从多发方面考虑,升级算法,更精准评估。
边栏推荐
- MySQL system keyword summary (official website)
- php 清除多维数组里面的空值
- Explain the garbage collection mechanism (GC) in JVM
- In PHP version 7.1.13, it is found that floating-point data passes through JSON during use_ There will be precision problems after encode
- Is it really safe to open a stock account online? Find the answer
- 笔记本电脑快速连接手机热点的方法
- 城通网盘仿蓝奏网盘源码 附带视频教程
- 分布式数字身份的几个“非技术”思考
- NP3 格式化输出(一)
- 想炒股开户,在网上进行股票开户安全吗?-
猜你喜欢

A review of visual SLAM methods for autonomous driving vehicles

SQL Server enable CDC

城通网盘仿蓝奏网盘源码 附带视频教程

Mutex mutex
![[eye of depth wuenda machine learning homework class phase IV] summary of logistic regression](/img/aa/62126bc7f5bbc0759ba3f4c847cf86.png)
[eye of depth wuenda machine learning homework class phase IV] summary of logistic regression

Résumé des différentes séries (harmoniques, géométriques)

变形金刚Transformer详解

1284_FreeRTOS任务优先级获取实现分析

Oracle-子查询

Standard | China payment and clearing Association releases the first privacy computing financial specification
随机推荐
A review of visual SLAM methods for autonomous driving vehicles
Voice processing tool: Sox
Linear regression with one variable
目标跟踪【单目标跟踪(VOT/SOT)、目标检测(detection)、行人重识别(Re-ID)】
js:Array. Reduce cumulative calculation and array consolidation
x86和x64的区别
About the many to many cascading insertion of sqlsugar (the ID of the collection attribute cannot be obtained, so the intermediate table cannot be maintained)
[quantitative investment system] factor processing and installation Talib
[quantitative investment system]django realizes screening and paging from the database
What does Ali's 211 mean?
【LoRaWAN节点应用】安信可Ra-08/Ra-08H模组入网LoRaWAN网络的应用及功耗情况
《乔布斯传》英文原著重点词汇笔记(七)【 chapter five】
Interprocess communication (IPC)
Speech signal processing - Fundamentals (I): basic acoustic knowledge
1284_FreeRTOS任务优先级获取实现分析
各種級數(調和、幾何)總結
实战回忆录:从Webshell开始突破边界
苹果开发者容易招致调查的若干行为
Summary of various series (harmonic, geometric)
华为设备配置小型网络WLAN基本业务