bet360体育在线-bet360官方网站 - _ _ _bet360体育在线是亚洲最佳娱乐平台,提供体育投注、即时比分、娱乐场、电子游戏等业务,bet360官方网站輔以专业的团队及雄厚资金,拥有一支多年实战经验的团队。bet360体育在线平台优秀的技术人才致力于为广大玩家提供针对性的信息服务,bet360官方网站亚洲客服24小时竭诚为广大客户服务,欢迎来战!!

bet365:《王者荣耀》用理论说话,解析ELO部分匹配机制数学原理

  • 时间:
  • 浏览:119

  作者:NGA-平A攻速流关羽

  很多同学在516抱怨过ELO,声称如果没ELO他们的游戏体验会更好。这是一个很大的误解。因为他们根本不知道所谓的ELO到底是啥。

  那么,作为一个985的工科学子,虽然没清北科学家厉害,但是我还是想和大家解释下什么是ELO,以及为什么你们是错的。

  

  这是电影《社交网络》的截图,窗户上写着的就是Facebook最早的ELO算法公式。

  是的,你没看错,ELO并不是清北科学家搞出来的让我们难过的东西,而是一个在体育比赛,游戏,社交网站中广泛适用的预期和评级系统。

  其发明者美国物理学教授Arpad Elo真的要比真武大弟子们厉害多了...

  为了让我的解释通俗易懂,我们先把王者荣耀所有的对战模式删除,仅留下1V1

  现在,有四个玩家:

  爱鹿,笔神,多尼,老亚瑟

  

  最后的结果是 爱鹿和老亚瑟连胜,分数涨到1238和1237,多尼连跪到1145,笔神输了一场愤怒地关掉了游戏,分数1180.

  反馈到星星上,爱鹿和老亚瑟各打了两盘,上了两颗星。多尼掉了三颗,笔神掉了一颗。

  你可以看到,经过两场随机匹配后,多尼成为受害者,每一盘他的对手和他都有巨大的差距,尽管星星差不多,但是这对他是不公平的比赛。

  ELO机制,最重要的一个概念就是“从你身上拿走ELO分”

  1.每个参与者都有一个ELO评分,这是一个代表他们相对于其他参与者的技术水平的总分。

  2.新玩家自动获得初始评级1200分。

  3.当两名参与者之间完成比赛时,比较他们的ELO分数。 比赛的胜者将从输家那里“获取”一定数量的ELO积分。

  4.拥有较高ELO的玩家倾向于获胜,因此获胜将为他们赢得几分。 相反,当分数更低的玩家获胜时,他们会从获胜者那里获得很多积分。

  实际的ELO算法由5部分组成:

  Rn - 玩家的新评级(比赛结束后)

  Ro - 玩家的旧评级(比赛前)

  S - 比赛的实际得分/结果

  E - 比赛的预期得分/结果

  K - K因子

  Rn=Ro + K * (S - E)

  Rn和Ro不用我解释吧,关键就在于S,E和K.

  S(实际分数)

  这是比赛的实际得分。 它始终为0

  胜利计为1,

  输了计为0。(先做简单化考虑)

  在我们上面的例子中,爱鹿击败笔神,爱鹿在此计算中得分为1,而笔神则得分为0。

  E(预期成果)

  这是算法的核心。 它需要两个因数:Ra和Rb(玩家A和玩家B的旧评级),然后返回玩家A的预期胜率。它使用累积分布函数(CDF)进行分数估计。

  CDF中如果能假设更多可能的扰乱,就有助于解决玩家能力的不一致性。这也就是传说中的Logistic CDF implementation。

  

  这里有几个部分:

  Ra - 玩家A的旧elo

  Rb - 玩家B的旧elo

  x - Ra和Rb的差异

  e - 欧拉数(一个数学常数)

  scale - 评分系统的预选标准差

  scale影响分布的“宽度”。 较大的比例将拉伸分布,增加最佳玩家的ELO,同时减少最差玩家的ELO。相反,较小的比例将压缩分布。

  但是,比例参数本身很难推理。 如果对比例参数进行一些替换,以便系统更好地推断其与玩家水准的关系。

  一般来说,scale值是400,欧拉数为10. 即s --> n/ln(10)

  这意味着,如果玩家A的ELO分比玩家B多n分,A就比B厉害10倍!这意味着,ELO为1400的玩家比1000 ELO玩家好10倍。

  当A匹配到B的时候,A有90.1%的概率会赢!

  那么,如果要预测匹配结果,我们只需要计算出计算匹配后ELO所需的K系数。

  K因子

  有效的K因子是任何ELO中极其重要的一部分。

  K因子决定了胜利和失败对ELO影响的敏感性。

  假设我们使用以下模型:

  --每个人都以1200的ELO开头

  --我们使用分数估计函数,其中n=400。

  如果K很大(例如70),那么意外的胜利(或失败)会对玩家的ELO产生巨大影响,并导致排名波动。

  现有玩家A的ELO分是1000,玩家B的ELO分是1300

  预计A对阵B的胜率是:1/(1+10^-(-300/400))=0.150979557

  A拿出后裔神奇地蒸发了六神B,1000 + 70 * (1 - 0.150979557)

  赛后他们的ELO分数变为:A=1059.43143 B=1240.56857

  这是ELO值的巨大变化 - 尽管玩家B的预期比玩家A高出5.6(0.849 / 0.151)倍,玩家A神勇发挥掏出后裔或者B心不在焉拿出花木兰就可以轻松缩小他们的ELO之间的差距排名。哈哈,开个玩笑。

  实际的排位中,玩家A可能需要数百场游戏来赶上玩家B的ELO值,即使CH在某个平行宇宙里再加强十倍后裔的输出。

  你们最关心和诟病的来了

  坑队友和反复摩擦的原理,以及为什么有的人好上分。

  K因子应该适合n的当前值以用于评分。K因子基本上代表玩家在比赛中可以获得的“最大”点数,如果玩家具有相同的技能等级,他们将获得k / 2个ELO点。

  如果玩家总是与ELO一样的玩家对战,他们必须赢得n /(k / 2)场游戏,才能上到1400分的真实段位。

  这通常是400 /(15/2)=53.33盘游戏,或K=800 / 53.33。

  包括象棋和大部分的MOBA游戏都是采用分层K因子系统,这意味着玩家必然有不同的K因子(n=400):

  对于新玩家来说,K=40,直到他们玩30场比赛

  对于游戏> 30场且从未有过ELO> 1200的玩家,K=20

  对于游戏> 30场并且ELO> 1200的玩家,K=10

  (假设非真实)

  如果我们假设新玩家的评级存在一定程度的不确定性,依据以上算法,他们反而更容易快速达到更好的成绩。 它也使得非常肝/熟练的玩家更难以上分/掉分(例如,由于拿出了花木兰)。

  请注意,当玩家有不同的ELO时:

  玩家A获得/失去Rn=Ro + K_a *(S-E)

  玩家B获得/失去Rn=Ro + K_b *(S-E)

  你可以看到,这与我开头所说的从其他玩家“获取”分数的实际是不同的,因为每个玩家将获得/失去不同的数量。

  这是对大部分玩家都友好并且是故意的。

  同理,在小晋级赛和大晋级赛的时候,也可以通过控制K值来决定比赛质量,因为不同的比赛玩家心态是不同的!

  K=60 上王者

  K=40 上星耀

  K=30 小段位

  K=20 出现连胜连跪

bet365

  (假设非真实)

  如果玩家玩的少,那么排名应该更加不稳定。 较高的K因子[相对于n]会更好,因此从K=(2 * n)/ 20到K=(2 * n)/ 25的K因子更合适。

  如果玩家很肝,那么排名应该不那么不稳定。 较低的K因子[相对于n]会更好,因此从K=(2 * n)/ 30到K=(2 * n)/ 45的K因子更合适。

  所以,你打得越多,越会影响你对局的质量!

  那么,你可以清晰地看到,尽管系统是能通过很多种手段来控制你对局的质量的。

  但是最终决定你分数和段位的是你的实际水平,你在上十局和长期的表现才是核心因素

  ELO算法对大多数玩家来说都是友好的,随机匹配并不会让你变得舒服。

  真的不要抱怨了,NGA需要干货

  欢迎大家指正!抱怨回复/歪楼举报!

  *部分bet365官方数据/公式参考自Scott Mackie的文献

  *整体思路来自Fandom

  


bet365 bet365