天梯匹配规则ELO

article/2025/11/9 13:16:08

ELO Rating System 是当今对弈水平评估的公认权威规则,已被广泛应于国际象棋、围棋、足球和篮球等体育运动以及游戏中。例如星际争霸天梯排行,魔兽世界竞技场,Dota天梯系统,LOL匹配等游戏的竞技比赛系统中。ELO是一套较为完善的评分规则和机制,比较适合对竞技类游戏的选手的技术等级进行评估,用以计量个体在对决类比赛中相对技能的算法系统,对于游戏而言,需要让每场游戏尽可能的接近公平,创造双方势均力敌的竞赛环境。它最初由美国物理学教授 Arpad Elo 创立,故命名为埃罗排名。


一、ELO Rating System模型思路

1.假设每个玩家每盘游戏中的表现是一个正态分布的随机变量,尽管选手在不同的游戏中发挥可能差异很大,但每位选手在一段时间内表现的平均值变化很小,ELO系统用随机变量的平均值来代表选手的真正水平。

2.ELO系统用胜平负来评价选手在某一场游戏中的表现,赢就代表这场发挥比对手好,反之就是不好,因此会用赢加分,输扣分,平不得分来进行评分。


二、积分计算公式

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])

因为E值也为预估,则Ea+ Eb=1

                      


R’a=Ra+K(Sa-Ea)

R’a:A玩家进行了一场比赛之后的Rating



K:K值是一个极限值,代表理论上最多可以赢一个玩家的得分和失分,K/2就是相同rating的玩家其中一方胜利后所得的分数。

国际象棋大师赛中,K=16;在大部分的游戏规则中,K=32。通常水平越高的比赛中其K值越小,这样做是为了避免少数的几场比赛就能改变高端顶尖玩家的排名。


三、实例说明

若当前A玩家rating为1500,B玩家rating为1600

预估A玩家的胜负值Ea = 1/(1+10^[(1600-1500)/400])≈0.36 

预估B玩家的胜负值Eb = 1-Ea = 1-0.36 = 0.64


假设A玩家获胜,实际胜负值为Sa = 1

A玩家最终得分为 R'a = 1500 + 32*(1-0.36) = 1500+20.5 = 1520,A玩家赢20分,B玩家输20分。


假设B玩家获胜,实际胜负值为Sa = 1

B队最终得分为 R'b = 1600 + 32*(1-0.64) = 1600 + 11.52 = 1612,B玩家赢12分,A玩家输12分。

PS:^符号代表次方运算。


四、天梯系统目的

1.保护新手不被有经验的玩家虐,让高手局中没有新手。

2.创造竞技和公平的游戏对局,使玩家的游戏乐趣最大化。

3.无需等待太久就能找到对手进入游戏。


五、具体实例

11对战平台的天梯实例。

下面的公式很好的说明了天梯积分的计算方法,而Si的计算则是取的ELO算法,虽然11的天梯还是存在Bug,但是不得不承认确实是很棒的设计。



从天梯积分曲线图可以看出,虽然曲线有波动,但是基本上能够代表这一段时间,玩家的技术水平区间,进而匹配战力接近的玩家,让玩家享受竞技的乐趣,而不是一味的虐菜,最后独孤求败进而流失。



参考:http://en.wikipedia.org/wiki/Elo_rating_system



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

相关文章

欧拉算法的实现

代码 from matplotlib import pyplot as plt import numpy as np h 0.01 yy [] xx [] yy.append(1) xx.append(0) def y1(m,n): return m - 2*n/m for i in range(100): k1 y1(yy[i],xx[i]) y yy[i] hy1(yy[i],xx[i]) xx.append(xx[i]h) k2 y1(y,xx[i1]) yy.append(…

《机器学习算法竞赛实战》整理 | 八、实战案例:Elo Merchant Category Recommendation

详情请参见原书 ​​​​​《机器学习算法竞赛实战(图灵出品)》(王贺,刘鹏,钱乾)【摘要 书评 试读】- 京东图书 前言 比赛链接: https://www.kaggle.com/competitions/elo-merchant-category-recommendation/overvi…

ELK日志分析系统之ELK原理

目录 引言 一、ELK简介 1、ELK日志分组组成 Elasticsearch(es) Logstash Kibana 2、日志处理步骤 二、Elasticsearch详解 1、Elasticsearch概述 2、Elasticsearch核心概念 三、Logstash详解 1、Logstash的主要组件 四、Kibana详解 1、Kiba…

大数据技术ELK实时检索

一 elasticsearch简介 ElasticSearch是一个高性能,基于Lucene的全文检索服务,是一个分布式的Restful风格的搜索和数据分析引擎,也可以作为NoSQL数据库使用。 对Lucene进行了扩展 原型环境和生产环境可无缝切换 能够水平扩展 支持结构化和非结…

调用链追踪:如何通过 ELK 实现日志检索?

调用链追踪:如何通过 ELK 实现日志检索? 上篇文章中,我们借助 Sleuth 和 Zikpin 的合力,搭建了一套调用链追踪系统,它可以帮助我们串联调用链中的上下游访问单元,快速定位线上异常出现在哪个环节。不过呢&…

【Algorithm】藏在Ranking中的ELo

写在前面的ELO 什么是ELO算法算法模型算法原理验证 总结 写在前面的 今天偶尔在BlueHole的HOT FIX&UPDATES的说明中看到了下面的一段话:Next Tuesday, August 1st, we will reset our leaderboard once again. Now that we are getting closer to launch, we wi…

欧拉路径:Hierholzer算法

Hierholzer 算法是一种用于求欧拉路径的算法。欧拉路径指的是,如果在一张图中,可以从一点出发遍历所有的边,每条边只能遍历一次,那么遍历过程中的这条路径就叫做欧拉路径。如果这条路径是闭合的,那就称为欧拉回路。简单…

ELO等级分制度

目录 前言ELO等级分制度 前言 近段重温了经典电影《社交网络》,在电影中 ,Facebook创始人马克扎克伯格在和女友分手后,受到好友爱德华多对核心算法的指引 写下了哈佛女生“选美”网站Facemash,并一气之下黑了学校教务系统&#x…

ELO(埃洛匹配分制度)Java篇

1. ELO算法数学实现介绍 其中表达式各字母含义: EA:预期A玩家的胜负值 EB:预期B玩家的胜负值 RA:A玩家当前的积分 RB:B玩家当前的积分 SA:实际胜负值(A VS B),胜1,平0.5&#xf…

ELK(Elasticsearch、Kibana、Logstash)以及向ES导入mysql数据库数据或CSV文件数据,创建索引和可视化数据

ELK下载 地址:Past Releases of Elastic Stack Software | Elastic 在Products和version处分别选择需要下载的产品和版本,E(elasticsearch)L(logstash)K(kibana)三者版本必须相同 …

浅析竞技游戏匹配机制-ELO算法

注:本文部分内容源自一位论坛大神,但具体的来源很抱歉笔者已经忘记,如侵即删。 文章目录 0 前言1 一般胜率预测算法2 添加特殊假设后的胜率预测算法3 基于不同分布的胜率预测算法4 最终的ELO算法5 相关改进5.1 从1v1到NvN5.2 收敛速度的改进5…

ELK 实现日志检索

什么是 ELK? ELK 并不是一个技术框架的名称,它其实是一个三位一体的技术名词,ELK 的每个字母都来自一个技术组件,它们分别是 Elasticsearch(简称 ES)、Logstash 和 Kibana。取这三个组件各自的首字母&…

Elo评分算法原理与实现

《社交网络》里的Mark Zackburg被女朋友甩后,在舍友的启发下,充分发挥了技术宅男自娱自乐的恶搞天分,做出了Facemash网站,对学校女生的相貌进行排名打分,结果网站访问流量过大,直接把学校网络搞瘫痪了。Facemask大受欢迎的关键就在于Zackburg基友Eduardo写在窗户上的排名…

ELO评分算法

ELO等级分制度是由匈牙利裔美国物理学家Elo创建的一个衡量各类对弈活动选手水平的评分方法,是当今对弈水平评估的公认的权威方法。被广泛应用于国际象棋、围棋、足球等运动,以及很多网游与电子竞技产业。游戏界比较著名的应用有: WOW&#xf…

ELMo算法介绍

这篇介绍一下ELMo算法(论文)。按道理应该加入前面的《关于句子embedding的一些工作简介》系列,但是严格来讲,只能说它通过自己产生的word embedding来影响了句子embedding, 所以干脆另写一篇吧。 IntroductionBidirectional language modelsELMoEvaluati…

ELO算法的JAVA实现

近期接手一个游戏项目,由于项目涉及得分计算,故研究了下ELO算法。关于ELO算法的程序实现,是少之又少,好不容易看到了一篇,最终不得不关闭该页面,故决定自己实现。 1. ELO算法数学实现介绍 其中表达式各字母…

数值 ELO算法教程

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

使用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…