2011-09-22 84 views
7

我正在爲遊戲網站上的用戶創建排名系統。按遊戲數量計算的加權贏率百分比

該系統應該基於一個加權勝率,其中加權元素是所玩遊戲的數量。

例如:

55勝2個負= 96%的勝率

1勝0負= 100%的勝率

第一記錄應該排名更高,因爲它們具有更高勝數。 我敢肯定,數學是超級簡單的,我只是無法用頭圍住它。誰能幫忙?

回答

4

ELO更徹底,因爲它打進一個雙贏或虧損時,會考慮對手的實力,但如果對手是隨機匹配的簡單和很有效果的方法是:

(所有玩家勝+常數*的平均主勝%) /(勝利+損失+常量)

所以用0個遊戲公式就是所有玩家的平均值,當你增加玩的遊戲數時,公式收斂於實際記錄。常數決定了它的速度有多快,你可能會選擇5到20之間的東西。

-1

是的,這是「超簡單」:

Percentage = Wins * 100.0/(Wins + Losses) 

四捨五入到整數您通常使用roundMath.round(但你沒有指定的編程語言)。

值可以在勝場數進行加權,使用給定的比例:

Rank = Wins * Wins/(Wins + Losses) 

但也有其他系統能夠理解這個問題更好,像的Elo(見我的評論)。

+0

嘿謝謝你的答案。我認爲這是贏得比例的基本公式,但它沒有考慮到加權因素。 1 * 100/1 = 100因此高於第一個記錄。也許我的最終排名單位不應該是這個百分比,而是我通過某個過程提出的一個整數? –

+0

那麼,什麼可以被認爲是一個重量?所玩遊戲的數量不會是因爲這已經反映在我的答案中的贏錢比例。我想說一個更好的分量就是玩家對抗對手的技能水平(例如贏盤比率)。但是這個問題已經被解決了,例如,在Elo排名系統中(對該詞進行網絡搜索)。 –

+0

當然,我會檢查出Elo。我一直在看RPI和BCS作爲運動的例子。我想我會做更多的思考如何以及爲什麼我要這樣做,並回到你身邊。謝謝您的幫助。 –

0

另一種可能性是我對How should I order these 「helpful」 scores?的回答。基本上,使用勝數來確定玩家贏得比賽的可能性的可能範圍,然後取低。這使55-2擊敗1-0的任何合理的選擇的置信水平。 (沒有理由不這樣做,我建議將其設置爲50% - 詳細信息請參閱帖子,其實很簡單。)

作爲一個小技術,我已經看到了一些建議使用Wald間隔而不是Agresti-Coull。實際上,他們對於大量投入產生相同的結果。但是如果遊戲的數量可能很小,那麼有很好的理由選擇Agresti-Coull。 (順便說一句,我自己想出了這個想法,儘管我不是第一個—,只是後來發現它有點標準。)

0

分數=(每勝分數)*(數字)(損失點數)*(損失數量),其中每勝的點數是正數,每點損失的點數是負數,選擇適合您的應用程序。