我试图找到一个简单的基于python的算法排名系统。
以下是该方案:
将有30个等级,等级1从0点开始。要达到30级,需要2000点。
随着关卡的进展,将需要更多积分。
例如,从1级到2级可能需要3分。 2级到3级可能需要5个额外点。 等级29-30可能需要额外增加1200点。
由于分数将在飞行中计算,我还需要一种方法来确定玩家所处的等级。例如,一个人有358分的等级是什么级别?
我可以手动设置点数,但2000点上限会每天波动,因此这不是理想选择。
我在想类似于谷歌的Pagerank(1-10),从0到4很容易,但9-10是一个非常难的成就。
任何简单的片段或小费?
由于
答案 0 :(得分:3)
通常的解决方案是使用对数刻度。如果使用log base 2,则每个级别需要两倍的点数。如果使用日志库10,则每个级别需要10倍的点数。这样,您可以“弯曲”曲线。数学See the Wikipedia page。
答案 1 :(得分: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))