当前位置:网站首页>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 .
边栏推荐
猜你喜欢
![[domain penetration authorization] cve-2020-1472 Netlogon privilege escalation vulnerability](/img/1a/916915b32e5adaf86b210fc764dbf6.png)
[domain penetration authorization] cve-2020-1472 Netlogon privilege escalation vulnerability

Friends, static keywords, static methods, and relationships between objects

【微服务|OpenFeign】openfeign的超时时间
A method to quickly connect notebook computers to mobile phone hotspots
开发小技巧-图片资源管理

【LoRaWAN节点应用】安信可Ra-08/Ra-08H模组入网LoRaWAN网络的应用及功耗情况

Some "non-technical" Thoughts on distributed digital identity

【无标题】

Summary of various series (harmonic, geometric)

表格背单词的方法
随机推荐
关于SQL语句的大小写
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
【Redis】Redis6学习框架思路和细节
How to recite words in tables
ThreadLocal thread variable
目标跟踪【单目标跟踪(VOT/SOT)、目标检测(detection)、行人重识别(Re-ID)】
NP5 格式化输出(三)
Feature selection: maximum information coefficient (MIC) [used to measure the degree of correlation between two variables X and y, linear or nonlinear strength, commonly used for feature selection of
sed 替换值为变量
Write time replication of hugetlbfs
使用adb命令调试夜神模拟器
消息中间件:pulsar
Voice processing tool: Sox
Application of mediastreamer2 and GStreamer in embedded field
A review of visual SLAM methods for autonomous driving vehicles
U盘内存卡数据丢失怎么恢复,这样操作也可以
Blueprint basis
【无标题】
mysql 主键约束删除问题
启牛学堂让开的证券账户是真的安全靠谱吗?