【发布时间】:2011-11-09 23:10:15
【问题描述】:
我需要创建一个计算高分“排行榜”的函数/方法(在 python 中)。每个玩家将玩任意数量的游戏,每轮获得一个分数。我想知道对排名靠前的球员进行排序的最佳方法是什么(考虑得分和比赛轮数)。每轮可能的分数是 F、D-、D、D+、C-、C、C+、B-、B、B+、A-和 A。
显然,一个简单的平均值是行不通的,因为它没有考虑到游戏的回合数。设置公平排序功能的最佳方法是什么?
编辑:我一直在这里阅读一些非常棒的答案,我想稍微澄清一下我的问题。我希望球员的得分和他们打过的回合数都以公平的方式计入他们的排名。这意味着拥有 20 个 B 的玩家应该比拥有 5 个 A 的玩家排名更高。 基本上高分应该反映一般的努力和技巧,“玩的回合数加上他们的分数”意味着他们的排名应该越高。
编辑 2: 阅读答案后,我认为最好的方法是对所有回合的玩家积分进行简单的总和。我不确定将绿色检查分配给哪个答案,因为您都正确。
【问题讨论】:
-
为什么每轮平均得分不起作用?
-
它可能会起作用,但我不想鼓励玩家只玩几轮以获得高分,然后因为害怕降低每轮得分而不再玩更多轮。另外,这是否意味着 A 的 1 轮排名会高于 20 B 的排名?
-
即使您能够从多个答案中受益,您仍然应该通过选择一个答案来解决您的问题,最好是一个最好反映解决方案的答案。如果真的是洗头,您可以使用您使用的确切解决方案提供您自己的答案,并接受,but really, the former is preferred to the latter
标签: python google-app-engine math