2

シンプルな Python ベースのアルゴリズム ランキング システムを見つけようとしています。

シナリオは次のとおりです。

レベルは 30 あり、レベル 1 は 0 ポイントから始まります。レベル 30 に到達するには 2000 ポイントが必要です。

レベルが進むにつれて、より多くのポイントが必要になります。

たとえば、レベル 1 から 2 に上がるには 3 ポイントかかる場合があります。レベル 2 から 3 は、追加で 5 ポイントかかる場合があります。レベル 29 ~ 30 では、さらに 1200 ポイントかかる場合があります。

スコアはその場で計算されるため、プレイヤーがどのレベルにいるかを判断する方法も必要です。例えば358点の人って何レベル?

ポイントを手動で設定することもできますが、2000 ポイントの上限は日々変動するため、理想的なオプションではありません。

Google の Pagerank (1-10) に似たものを考えていました。0 から 4 に到達するのは簡単ですが、9-10 は非常に難しい成果です。

簡単なスニペットやティペットはありますか?

ありがとう

4

2 に答える 2

3

通常の解決策は、対数目盛を使用することです。ログベース2を使用する場合、各レベルには2倍のポイントが必要です。ログベース10を使用する場合、各レベルには10倍のポイントが必要です。このようにして、曲線を「曲げる」ことができます。数学については、ウィキペディアのページを参照してください。

于 2010-09-29T15:46:35.813 に答える
3

対数スケールを使用します。コード例が必要な場合:

base = 2 # change to change the rate at which you go through the levels
levels = 30
finalPoints = 2000
scale = levels/math.log(finalPoints, base)
level = math.floor(scale*math.log(points, base))
于 2010-09-29T16:07:46.950 に答える