? 很多游戲都需要用到打分系統(tǒng),比如11平臺的天梯,魔獸世界的競技場,還有國際象棋。Elo Rating System就是一個用來計算二人(或兩個團(tuán)隊)競技游戲中各個選手(團(tuán)隊)等級的算法。該算法由匈牙利裔美籍物理學(xué)家Arpad Elo發(fā)明。
? 在打分系統(tǒng)中,每個選手都有一個數(shù)字,代表其等級。數(shù)字越大的選手等級越高,而分?jǐn)?shù)是由和其他選手競技得來的,贏得比賽就加分,輸?shù)舯荣悇t扣分。贏得或輸?shù)舻姆謹(jǐn)?shù)取決于對戰(zhàn)雙方的等級差距。比如,如果一個選手A贏了一個比他等級高很多的選手B,則A的等級就會提高跟多,B的等級則會降低很多,反之,如果選手A贏了一個等級遠(yuǎn)低于自己的選手B,則A的等級不會上升很多,而B的等級也不會下降很多。
? 假定選手A的真實(shí)等級為RA,選手B的真實(shí)等級為RB,那么,選手A的等級的期望值為:
? 相似地,選手B的等級的期望值為:
? 上述兩個式子還可以寫作:
? 其中:
?
?
? 更新選手A的等級的公式為:
?
? 其中RA為A選手現(xiàn)在的等級,EA可由公式-1求得,K是一個常數(shù),對于等級比較高的選手,K值可以設(shè)置的小一點(diǎn),對于等級比較低的選手,K值可以設(shè)置的大一點(diǎn),代表著等級越高的選手提升的空間越小。SA代表著本次比賽的勝負(fù),若A勝,則SA=1,若A輸,則SA=0,若平局,則SA=0.5。
? 舉例說明:若A選手當(dāng)前的等級為1300,B選手當(dāng)前等級為1200,假設(shè)A輸給了選手B,設(shè)K=32,則A的等級變?yōu)?279,B的等級變?yōu)?220。
? 關(guān)于K的取值,在美國國際象棋聯(lián)盟(USCF)中是如下規(guī)定的:
| 選手等級 | K值 |
| 0-2099 | 32 |
| 2100-2399 | 24 |
| 2400以上 | 16 |
?
?
參考文獻(xiàn):
? [1] Wikipedia-Elo Rating System
? [2] Elo Rating System-Cody的記事本
? [3] Elo Rating System dragoniye的博客
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

