我正在學校裡創辦一個國際象棋俱樂部,我想創建一個Python程序來計算和存儲每個玩家的Elo等級。我有信心可以對其進行編程,但我只需要知道:
您如何計算Elo?
我正在尋找什麼:
- 方程式用於計算每個玩家的預期結果。
- 方程式用於使用此方法計算elo更改。
- 如何處理平局。
- 如何計算K的值,或提出對學生有用的靜態K的建議。
到目前為止,我發現的最好的解釋是英雄聯盟此視頻中介紹的評分系統(恰好與國際象棋中使用的系統相同)。
我正在學校裡創辦一個國際象棋俱樂部,我想創建一個Python程序來計算和存儲每個玩家的Elo等級。我有信心可以對其進行編程,但我只需要知道:
您如何計算Elo?
我正在尋找什麼:
到目前為止,我發現的最好的解釋是英雄聯盟此視頻中介紹的評分系統(恰好與國際象棋中使用的系統相同)。
這裡有一些有關Elo系統的信息,可能對您有用。
Arpad Elo設計的系統假設玩家的成績達到正態分佈 200個額定點的標準偏差。因此,他使用了後勤功能來計算玩家的預期結果。實際函數(實際上使用的表與該函數的差異最小)
WEa = 1 /(1 + 10 ^((Rb-Ra)/ 400)),四捨五入為WEa是玩家a的預期結果,而Rb和Ra是兩位玩家的評分。如您所見,在兩個得分相差400分的玩家之間的遊戲中,獲勝的機會為10:1。 在比較了預期遊戲和玩家的實際成績之後,因此表現優於預期結果的玩家會提高評分,而表現較差的玩家則會降低評分。為此,將預期結果與實際結果之間的差乘以常數K。此常數必須足夠小以使系統穩定並避免僅反映最後的結果,但必須足夠大以能夠跟踪玩家的發展。我想一個很好的值應該在20到30之間,例如 Jeff Sonas建議以24為最佳值,而 FIDE手冊則指出70場比賽后評分穩定(K10) ,35個遊戲(K20)和18個遊戲(K40),也許這些數字可能對您設置自己的K值很有用。
使用更大的K值,前幾局遊戲可以幫助您的學生迅速達到近似額定值,然後可以更改為較小的K值。
有關FIDE等級的所有信息都可以在這裡找到:
https://www.fide.com/fide/handbook.html?id=172&view=article
每個玩家都必須以估算的FIDE elo等級開始。通常,人們在與FIDE玩家進行比賽時獲得等級。 (請參閱第8.2條)
在按照第8.5條進行的每場比賽之後,FIDE elo系統都會更新您的評分。
每個 https://en.wikipedia.org/wiki/Chess_rating_system
計算出錦標賽后玩家的新評分:
Rn = Ro +(K / 2)(W-L +(等級差異之和/ 2C))
Rn是新等級,Ro是舊等級。 W和L是獲勝和失敗的次數。等級差異是對手的等級減去玩家的等級,而不是相反。
C將確定等級之間的間隔,即標準偏差。看來通常使用200。
K將決定每個遊戲產生多少效果。玩家到達IM後,FIDE將使用30和20。 http://www.fide.com/component/content/article/1-fide-news/3963-rating-regulations-the-k-factor
抽獎是0勝0負。