-1
我有一個users
表,我想根據他們的表現在與其他用戶的戰鬥中爲每個用戶分配排名。用戶與用戶的排名模型
我只是做一個簡單的贏/輸計算器,但我不希望用戶只是反覆擊敗排名非常低並且進展到#1的用戶。
我對算法沒有真正的知識,所以我不知道我會如何繼續這樣做。
有沒有人知道一個算法,使用戶將排名在他們的表現對類似用戶的排名?
謝謝!
我有一個users
表,我想根據他們的表現在與其他用戶的戰鬥中爲每個用戶分配排名。用戶與用戶的排名模型
我只是做一個簡單的贏/輸計算器,但我不希望用戶只是反覆擊敗排名非常低並且進展到#1的用戶。
我對算法沒有真正的知識,所以我不知道我會如何繼續這樣做。
有沒有人知道一個算法,使用戶將排名在他們的表現對類似用戶的排名?
謝謝!
爲了您的具體問題:「我不希望用戶只需多次擊敗以非常低的級別和進步#1用戶」:
而不是總是從輸家轉移一個點到在每場比賽中贏家,一個簡單的方法可能是轉換一個由玩家等級差異縮放的點。這反映了對手較弱,不太有意義的勝利:
if (winner.score <= loser.score) { /* defeated a stronger player - yay! */
winner.score += 1;
loser.score -= 1;
}
else { /* defeated a weaker player */
float value = 1.0/(winner.score - loser.score);
winner.score += value;
loser.score -= value;
}
(你可能必須使用存儲的程序在MySQL來實現這一點 - 它似乎太可怕,試圖在一個SQL實現。UPDATE語句)
對於更周到的方法來排名的球員,爲什麼不看看國際象棋選手的排名對方:wikipedia.org/wiki/Chess_rating_system
哪個選項你考慮了,怎麼辦,他們無法滿足您的總體要求?請回顧[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask) – Abecee