ELO Rating排名系統

2021-06-06 16:50:51 字數 1967 閱讀 4413

大部分競賽都需要有排名。我想為紙牌遊戲訂出一種「具普及性的」排名制度,於是參考了現成許多運動的排名制度,稍為整理各種制度的特性,希望理出乙個運算的方式。 

1. elo rating

elo排名制度,是乙個非常出名的排名制度。這個制度最大重點,在於強手打敗弱手時,賺不了多少積分;反之就能肷比平常多的積分。每位參賽者都有乙個實力值,實力值越高則排位越前。 

elo制度的主要運算公式如下:

新實力值 = 舊實力值+ k(勝負值 – 期望勝率)

每位參賽者最初都被賦予相同的初始實力值,這個值在不同類別的系統中都不同,大概是由1300至1600不等。 

勝負值:勝為1、負為0、平手為0.5 

k-value就是一局結束後增減的最大可能值。 

期望勝率:根據局前雙方的實力值(舊),計算雙方勝出的機率。 

1(a)k-value 

在美國西洋棋聯盟(uscf)的排名中,主要採用**制,根據參賽者的實力值,分成三個領域來決定k-value: 

實力值0-2099者,k-value為32; 

實力值2100-2399者,k-value為24; 

實力值 >=2400者,k-value為16。 

為甚麼業餘級別的k-value需要高一點呢? 

有一種說法是避免偶發性的失算,例如乙個人的實力值約有2500,但初始實力值是1600的話,公升級至應有積分便需要對賽很多局。調整k-value的話能加速達到應有的等級領域。 

而另乙個說法是,入門者的實力變化可能很急速,而相對來說專業級的穩定性較好…… 

為了讓剛加入系統的高手盡快得到應有的評級,世界西洋棋聯盟(fide)索性讓新加入者使用乙個較高的k-value,在30局過後才降回一般水平。fide對k值的設定如下: 

首30局,k-value為25; 

實力值不足2400的,k-value為15; 

實力值到達2400並已進行超過30局的,k-value為10。以後k-value不會再改變。 

綜合各說法,k-value的大小在系統中有舉足輕重的地位,分析如下: 

低k-value的需要,是防止高階者以「打敗低階對手」來賺取攀公升的點值。例如當雙方的實力值相差幾百點時,高階者勝出的得分不足一點,在不取小數點的系統下,高階者就連丁點的便宜也賺取不了。 

高k-value的需要,是讓初加入者較能大幅度追趕高分者。 

由低實力值增長至高實力值,k-value理應逐漸變小。 

其他根據elo排名制調整的制度,包括一些網上的棋類競賽,會訂立不同的k-value,有些索性劃一以相同的k-value處理所有賽局。 

18thcandidate一篇有關elo rating(thing) 的文章表示,賽事的重要性越高,k-value就越高。原始的elo制並沒有納入賽事重要性,而fifa的排名制卻有,所以姑且留在第二部分介紹fifa排名制中再提及。 

1(b)期望勝率 

期望勝率是指在賽局進行前,根據參賽者的往績(實力值),估評雙方在即將進行的賽局中,分別有多少勝出的概率。期望勝率的運算方法如下:

期望勝率 =  1/(1+10^(dr/400))  

dr = 對手的實力值 – 自己的實力值 

400和10的設定,意思可大概解釋為在相差400點實力值時,低階者的勝出機率就只有十份之一。 

在各種調整過的elo制度中,400和10的設定可能有所不同,但整體的用意都是計算每位參賽者在局前的期望取勝率。 

每位參賽者在該局進行前,只要知道對手的目前實力值,便可計算出勝、負或平手後雙方的結果實力值。 

另外,這裡記載了一些elo應用例子。 

elo制度原本應用於西洋棋,後來逐漸被不同領域的賽事調整並廣泛應用,例如足球及圍棋等,現在已成為排名制度中的中樞方程式。紙牌遊戲雖然博大,但賭博類的賽事只會直接以籌碼排名,即使是有許多國際賽事的合約橋牌,好像都沒找到有採用elo來排名。反而一些網上的橋牌**,如funbridge,因為對於排名功能的迫切需要,而開始借用elo來發展排名制度。(參考ranking in open tournaments: elo calculation)

BZOJ 1056 1862 排名系統

排名系統通常要應付三種請求 上傳一條新的得分記錄 查詢某個玩家的當前排名以及返回某個區段內的排名記錄。當某個玩家上傳自己最新的得分記錄時,他原有的得分記錄會被刪除。為了減輕伺服器負擔,在返回某個區段內的排名記錄時,最多返回10條記錄。第一行是乙個整數n n 10 表示請求總數目。接下來n行,每行包含...

HAOI2008 排名系統

設計一種資料結構,支援給指定點插入元素並覆蓋先前的元素 查詢某一點的排名 輸出從任意排名之後的10名。採用splay實現 關於讀入的字串,我們可以雜湊然後將雜湊值丟到map裡,這樣就可以給每乙個字串乙個編號,方便在splay上操作。關於插入和刪除以及查詢操作,都是splay的基本操作,在此不再贅述。...

ZJOI2006 GameZ遊戲排名系統

平衡樹.這題炒雞好寫的,就是道平衡樹的裸題!資瓷del和查詢排名 用map存一下節點編號 我們在平衡樹上也不用維護相同值的個數了 左子樹維護 data now 的值,因為相同的肯定是後來插入.第乙個操作直接把查詢物件旋轉到根上去,然後輸出右子樹大小 1 第二個操作先把排名變成第幾小,然後用排名查詢輸...