`

ELO排名算法

 
阅读更多

在wow lol 11平台等游戏中,都采用了一种排名算法,这种算法叫ELO,是一个叫ELO的人发明的,最开始用于国际象棋比赛计分。

 

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

对于A来说,初始Rank值为Ra,一局结束后为 R'a。这里关键是K,Sa,Ea这三个参数。

Sa:这个值最简单,就是你真实输赢概率,一般胜为1,平为0.5,输为0,换算成百分比就正好是100%和0%。这个值可以理解为实际胜率,可以根据实际需求定制。

Ea:就是你期望的胜率,所谓期望就是预期,那预期的依据是什么呢?预期的依据是Ra-Rb的差,这里的A和B可以是一个队伍的平均值,也可以是两个人当前的Rank值,这取决于你是1V1还是NvN。大家都知道,概率是一个[0,1]闭区间的值,而这里的Ra-Rb是一个整数,那么如何把这个整数映射到[0,1]这个区间呢?

在最初ELO用到了一个函数来解决这个映射关系,这个函数是“正态概率密度函数”:

后来经过多次分析ELO把函数换成:

这里有一张表,是Ea的解的对应表。

有了这个表就不需要计算了。

K:这个K值是一个调节值,在wow里面初始它为32,当分数达到2000+的时候,这个值开始变小,到2400+这个值稳定在8左右。为什么这样设定,一方面保证新玩家,玩的比较好的可以快速上去,不用一直跟菜鸟打。另外就是,对一些整天打比赛的人,降低其成长速度可以让所有人的分数集中在一个比较合理的区域。

 

 

 

 

 

分享到:
评论

相关推荐

    Python中的 Elo算法实现_python_代码_下载

    elo公式是一种通过计算相对技能对棋手进行排名的方法。它在团队运动中得到了成功的应用。已经开发了一个 python 包,用于根据先前的技能排名计算预期的胜利概率,并在结果之后更新排名。 from elosports.elo import...

    cpp代码-ELO算法

    在编程领域,ELO算法也常被应用于比赛或竞赛排名,根据参赛者之间的胜负关系来调整他们的相对技能评分。在这个cpp代码实现中,我们将探讨ELO算法的基本原理以及如何用C++语言进行实现。 ELO算法的核心思想是基于...

    elo-rating:基于Elo评分算法管理用户排名的应用程序

    基于Elo评级算法的用户排名管理应用 环境环境 从master分支构建的环境可在Heroku 从开发分支建立环境可在Heroku API参考 要查看API参考,请访问 安装 物产 核心方面的属性可以在文件elo-rating/src/main/...

    soccer_power_ranking:基于ELO算法的足球实力排名

    【标题】:基于ELO算法的足球实力排名 在体育竞技中,特别是在足球这项全球最受欢迎的运动中,评估球队实力的系统是至关重要的。ELO( Elo rating system)是一种广泛应用于棋类比赛的评分系统,但近年来也被引入到...

    MultiRank:可定制的基于Elo的排名算法,适用于所有情况-开源

    我讨厌有人说基于Elo的排名系统很难实施,尤其是在两个以上竞争对手的情况下。 MultiRank是完全可定制的基于Elo的排名解决方案,适用于任何情况或数量的竞争者。 尽管它是用PHP编写的,但可以轻松移植到其他语言。 ...

    elo:在Clojure中实现并重新构建的Elo排名平台

    2. **评分算法** - 实现Elo排名系统的数学逻辑,根据比赛结果更新玩家的分数。 3. **事件处理器** - re-frame的事件系统处理用户交互,如创建新比赛、报告比赛结果等。 4. **视图组件** - 使用React或Reagent构建...

    tic-tac-toe-challenge

    目的是让学生在编写井字游戏AI方面相互竞争,并使用ELO排名算法(以国际象棋中的使用最为人所知)对各个客户进行排名 设置 克隆存储库 运行yarn install --frozen-lockfile 运行命令node server.js以启动服务器 ...

    claim-diff_elones:Elo算法的实现

    Elo算法,由阿瑟· Elo博士在20世纪50年代提出,最初用于国际象棋比赛中的排名系统,后来被广泛应用于各种竞技比赛和预测模型中,包括电子竞技、扑克甚至学术论文的影响力评估。在"claim-diff_elones"项目中,Nestor...

    流行度竞赛:流行度竞赛:通过使用Elo排名在互联网上找到最佳网站,学习TypeORM,AngularJS,KOA和MySQL

    提交内容使用Elo系统进行排名,该系统主要用于对棋手进行排名。 由于我想允许匿名用户提交数据并对提交的内容进行投票,因此我采取了多种反垃圾邮件措施。 添加或修改数据库的提交需要类似区块链的工作量证明计算...

    gw-elo:GvG Scrim ELO模拟系统

    ELO系统最初是为了国际象棋比赛设计的,但现在已被广泛应用于各种竞技游戏,用于排名和匹配玩家。 在“生产迁移”这个上下文中,可能是指将gw-elo系统从开发环境迁移到生产环境的过程。这是一个关键的步骤,确保...

    Elo商户品类推荐第21期解法_Jupyter Notebook_下载.zip

    基于Elo评分系统,可能使用了等级相关的排序学习算法,如RankSVM、LambdaMART等,旨在优化商户的排名。 4. **Jupyter Notebook**:作为数据分析和模型开发的工具,Jupyter Notebook提供了Python、R等多种语言的支持...

    csgo-elo:跟踪 CS 的 Elo 评分

    5. 可视化展示:利用JavaScript库,如D3.js或Chart.js,创建图表或仪表板,实时展示各队伍的Elo评分,让玩家和粉丝能直观地了解排名动态。 6. 用户交互:如果这是一个Web应用,还可以添加用户界面元素,让用户能够...

    bbt-与Elo,Glicko或TrueSkill相似的技能评级系统-Rust开发

    它遵循论文“在线排名的贝叶斯近似方法”中的算法1。 将BBT添加到您的Cargo.toml中的方法:[dependencies] bbt =“ 0.2.0”如果要使用Serde序列化等级,则需要在Cargo.toml中添加以下内容:[dependencies.bbt] vers

    kamcord-hearthstone:炉石传说比赛的Elo阶梯

    - 用户界面展示:实时更新玩家的Elo分数和排名,这可能涉及到前端框架(如React或Vue)和API交互。 5. 应用拓展: 除了基本的Elo评级,该项目可能还涵盖了其他功能,如排行榜展示、历史战绩分析、匹配建议等,...

    Elo-MMR:多人比赛的技能评估系统

    Elo-MMR算法设计用于在比赛项目中将中等至大量运动员排名的活动,由于以下任何原因,无法在不同事件之间对结果进行标准化: 每项赛事都具有新颖的挑战,例如障碍赛,攀岩和奥林匹克奥林匹克竞赛。 在同一事件中,...

    cpp代码-ElO反推公式

    在编程领域,尤其是游戏开发和竞技对战平台中,ELO( Elo rating system)评分系统是一种广泛应用的算法,用于评估玩家或队伍的实力水平。这个压缩包包含的是用C++实现的ELO反推公式代码。ELO系统最初设计用于国际...

    数学建模优秀论文_一个给足球队排名次的方法.rar

    论文可能还会探讨不同的排名算法,比如Elo评级系统,它基于每场比赛的结果动态更新球队的评分,使得高分代表更强的队伍。在足球比赛中,Elo系统可以为每场比赛设立一个预期胜利概率,然后根据实际结果调整球队的评分...

    timemachines-testing:测试优化器和时间序列算法,并为其分配Elo等级

    Optimizer Elo评分和排行榜有关全局优化策略的当前排名和Elo评分,请参阅。 这些是通过随机匹配计算的,其中随机选择函数,还随机选择搜索的维数和允许的迭代次数。 精确的方法显示在。Elo型评分和排行榜时间序列...

    ELO-Calculator

    这个系统的概念最初由阿瑟·菲舍尔(Arpad Elo)设计,用于国际象棋排名,但后来被广泛应用到电子竞技、扑克和其他竞技活动中。ELO系统通过计算每次比赛后的分数变化来反映参与者的表现和实力。 在Java编程中实现...

Global site tag (gtag.js) - Google Analytics