您現在的位置是:首頁 > 網路遊戲首頁網路遊戲

《王者榮耀》用理論說話,解析ELO部分匹配機制數學原理

簡介包括象棋和大部分的MOBA遊戲都是採用分層K因子系統,這意味著玩家必然有不同的K因子(n=400):對於新玩家來說,K = 40,直到他們玩30場比賽對於遊戲> 30場且從未有過ELO> 1200的玩家,K = 20對於遊戲&g

王者榮耀k傷害代表多少

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

很多同學在516抱怨過ELO,聲稱如果沒ELO他們的遊戲體驗會更好。這是一個很大的誤解。因為他們根本不知道所謂的ELO到底是啥。

那麼,作為一個985的工科學子,雖然沒清北科學家厲害,但是我還是想和大家解釋下什麼是ELO,以及為什麼你們是錯的。

《王者榮耀》用理論說話,解析ELO部分匹配機制數學原理

這是電影《社交網路》的截圖,窗戶上寫著的就是Facebook最早的ELO演算法公式。

是的,你沒看錯,ELO並不是清北科學家搞出來的讓我們難過的東西,而是一個在體育比賽,遊戲,社交網站中廣泛適用的預期和評級系統。

其發明者美國物理學教授Arpad Elo真的要比真武大弟子們厲害多了。。。

為了讓我的解釋通俗易懂,我們先把王者榮耀所有的對戰模式刪除,僅留下1V1

現在,有四個玩家:

愛鹿,筆神,多尼,老亞瑟

《王者榮耀》用理論說話,解析ELO部分匹配機制數學原理

最後的結果是 愛鹿和老亞瑟連勝,分數漲到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 <= x <= 1。

勝利計為1,

輸了計為0。(先做簡單化考慮)

在我們上面的例子中,愛鹿擊敗筆神,愛鹿在此計算中得分為1,而筆神則得分為0。

E(預期成果)

這是演算法的核心。 它需要兩個因數:Ra和Rb(玩家A和玩家B的舊評級),然後返回玩家A的預期勝率。它使用累積分佈函式(CDF)進行分數估計。

CDF中如果能假設更多可能的擾亂,就有助於解決玩家能力的不一致性。這也就是傳說中的Logistic CDF implementation。

《王者榮耀》用理論說話,解析ELO部分匹配機制數學原理

這裡有幾個部分:

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在某個平行宇宙裡再加強十倍後裔的輸出。

《王者榮耀》用理論說話,解析ELO部分匹配機制數學原理

《王者榮耀》用理論說話,解析ELO部分匹配機制數學原理

你們最關心和詬病的來了

坑隊友和反覆摩擦的原理,以及為什麼有的人好上分。

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 出現連勝連跪

(假設非真實)

如果玩家玩的少,那麼排名應該更加不穩定。 較高的K因子[相對於n]會更好,因此從K =(2 * n)/ 20到K =(2 * n)/ 25的K因子更合適。

如果玩家很肝,那麼排名應該不那麼不穩定。 較低的K因子[相對於n]會更好,因此從K =(2 * n)/ 30到K =(2 * n)/ 45的K因子更合適。

所以,你打得越多,越會影響你對局的質量!

《王者榮耀》用理論說話,解析ELO部分匹配機制數學原理

那麼,你可以清晰地看到,儘管系統是能透過很多種手段來控制你對局的質量的。

但是最終決定你分數和段位的是你的實際水平,你在上十局和長期的表現才是核心因素

ELO演算法對大多數玩家來說都是友好的,隨機匹配並不會讓你變得舒服。

真的不要抱怨了,NGA需要乾貨

歡迎大家指正!抱怨回覆/歪樓舉報!

*部分資料/公式參考自Scott Mackie的文獻

*整體思路來自Fandom

《王者榮耀》用理論說話,解析ELO部分匹配機制數學原理

Top