首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >30层Python排名算法

30层Python排名算法
EN

Stack Overflow用户
提问于 2010-09-29 23:41:40
回答 2查看 1.3K关注 0票数 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是一个非常困难的成就。

有没有什么简单的片段或提示?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-30 00:07:47

使用对数刻度。如果你想要一个代码示例:

代码语言:javascript
复制
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))
票数 3
EN

Stack Overflow用户

发布于 2010-09-29 23:46:36

通常的解决方案是使用对数刻度。如果你使用以2为底的对数,那么每一级都需要两倍的分数。如果使用以10为底的对数,则每个级别需要10倍的分数。这样,你就可以“弯曲”曲线了。数学上的See the Wikipedia page

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3823243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档