Python排名算法有30个级别

时间:2010-09-29 15:41:40

标签: python algorithm ranking

我试图找到一个简单的基于python的算法排名系统。

以下是该方案:

将有30个等级,等级1从0点开始。要达到30级,需要2000点。

随着关卡的进展,将需要更多积分。

例如,从1级到2级可能需要3分。 2级到3级可能需要5个额外点。 等级29-30可能需要额外增加1200点。

由于分数将在飞行中计算,我还需要一种方法来确定玩家所处的等级。例如,一个人有358分的等级是什么级别?

我可以手动设置点数,但2000点上限会每天波动,因此这不是理想选择。

我在想类似于谷歌的Pagerank(1-10),从0到4很容易,但9-10是一个非常难的成就。

任何简单的片段或小费?

由于

2 个答案:

答案 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))