当前位置:网站首页>Measure the level of various chess playing activities through ELO mechanism
Measure the level of various chess playing activities through ELO mechanism
2022-06-29 08:37:00 【Beauty of algorithm and programming】
0 introduction
There are many competitions in daily life , Like one-on-one chess 、 Go and other chess competitions , There are also competitions between teams , Such as football 、 Basketball and other ball games . In these competitions , We always know that there are some strong players 、 A strong team , however , How strong are they ? Or to say , We all think that player a is better than player B , But how much better is a than B , There is a 60% winning rate , Or 80% of the time , Or is it almost certain to win ? Can we quantify this problem through mathematical methods ?
therefore ,elo The hierarchical subsystem was born .
Elo The hierarchical system is defined by the Hungarian American physicist Arpad · Ello created an evaluation method to measure the level of various chess playing activities , Its purpose is to solve the above problems .
1 problem
How to measure the level of the players in the competition ? How to use python Realization elo fraction ?
2 Method
Elo The idea is very simple , Than the size . If we can use a score to evaluate the strength of the players , nail 2000 branch , B 1800 branch ,2000 Than 1800 Be big , That means that the strength of a is stronger than that of B .
however , B also has the possibility of defeating a . Because a may not play well in a certain game , Only played out 1800 The level of , And B plays supernormal , Reached 2000 The level of the points , In this way, B defeated a .
To solve this problem , We may as well think that the players' performance follows the normal distribution —— For example, the average value of a is 2000 Is a normal distribution , That is to say, most of the time, his level of play is 2000 near , There is also a very low probability of arrival 1800 Below or 2200 above . such , According to the formula of normal distribution , You can get the expected winning rate among the players . This formula was originally an integral formula that was difficult to calculate , But it can be calculated by another very simple approximate formula .
Now we can use a score to represent the strength level of a player , Now players a and B have their own grade points , If they play , The winner represents his stronger strength , Therefore, we should improve the elo integral , In the same way, we should also reduce the elo integral .
For example, at present, a is 1500 branch , B is 1600 branch . We know , A and B fight , Obviously, B is more likely to dominate , So if B wins
Now Party A and Party B are competing , According to the formula ,
If a wins , A will update his elo The grade is divided into 1520.5 branch , And the integral of B will fall to 1579.5 branch , It is equivalent to deducting the amount of B 20.5 Give it to a . If B wins , A's... Will be deducted 12 Share to B , A becomes 1488 branch , B becomes 1612 branch .
And if it is a game with great disparity in strength , nail 2000 Points against B 1200 branch , A's expected winning rate is extremely close to 100%, So their elo The score will not change .
Let's assume that , At a particular time , The average strength of a player will not fluctuate greatly , So the more games he plays , His elo The grade score will be closer and closer to the grade score of his real strength .
Now we can think of a team as a player , So when teams play , You can get a team's elo The grade is divided .
3 Experimental results and discussion
Code list 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 Conclusion
For many similar balls , The fairness of games and other chess games , Use elo Mechanism score measurement method , By seeking elo Fraction experiment , Prove that you can use elo The mechanism measures the level of individual players or teams , To achieve the fairness of the game or game . This method only considers the competition results unilaterally , Not taking into account other special circumstances , So if you want to achieve a fairer game , It also needs to be considered from multiple aspects , Upgrade algorithm , More accurate assessment .
边栏推荐
- [redis] redis6 learning framework ideas and details
- A review of visual SLAM methods for autonomous driving vehicles
- Mutex mutex
- 表格背单词的方法
- Chengtong network disk imitation blue playing network disk source code with video tutorial
- P6772 [NOI2020] 美食家(矩阵快速幂)
- Voice annotation tool: Praat
- mysql 主键约束删除问题
- 城通网盘仿蓝奏网盘源码 附带视频教程
- Matlab usage
猜你喜欢

实战回忆录:从Webshell开始突破边界

VMware vcenter/esxi series vulnerability summary

目标跟踪【单目标跟踪(VOT/SOT)、目标检测(detection)、行人重识别(Re-ID)】

分布式数字身份的几个“非技术”思考

Set up Jenkins environment and automatically associate packaged project jars for automatic release

【最全】PS各个版本下载安装及小试牛刀教程(PhotoShop CS3 ~~ PhotoShop 2022)

How to recite words in tables

Flutter file read / write -path_ provider
A method to quickly connect notebook computers to mobile phone hotspots
开发小技巧-图片资源管理
随机推荐
A high-frequency problem, three kinds of model thinking to solve this risk control problem
Introduction to taro
Automatic operation and maintenance management platform - construction and daily use of SPuG
How to recite words in tables
Voice processing tool: Sox
PaddleNLP通用信息抽取模型:UIE【信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练】
Baodawei of the people's Chain: break down barriers and establish a global data governance sharing and application platform
《乔布斯传》英文原著重点词汇笔记(八)【 chapter six 】
Verilog初体验
馬賽克筆記
名企实习一年要学会的15件事,这样你就省的走弯路了。
Simple use of vlookup function in Excel -- exact matching or approximate matching data
语音处理工具:sox
开户买基金,通过网上基金开户安全吗?-
Application of mediastreamer2 and GStreamer in embedded field
VMware vcenter/esxi series vulnerability summary
1284_ Implementation analysis of FreeRTOS task priority acquisition
Hands on deep learning (I) -- linear neural network
Np5 formatted output (III)
PHP clear empty values in multidimensional array