首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图找出一个奇怪的数学公式

试图找出一个奇怪的数学公式
EN

Stack Overflow用户
提问于 2015-01-31 03:07:23
回答 2查看 44关注 0票数 0

因此,我正在根据我正在编写的程序的速度等级进行攻击超时,但在数学方面,我不是天才。因为我有一个公式,如so speed = lambda x: x/50基本速度等级默认为100,所以攻击将在speed(100)每两秒钟发生一次。现在我想要的是,在较高的速度等级下,攻击发生得更快,在较慢的速度等级下,攻击发生得更慢。也就是说,speed(98)会返回大于2的值,而speed(101)会返回小于2的值。这些数字只是例子,但主要问题是,有一个公式可以根据较高的基数返回一个较低的数,反之亦然?

例如:speed(101); returns x < yspeed(98); returns x > y y是一个常量,如2。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-31 03:13:46

不如:

代码语言:javascript
复制
def speed(score, attacks_per_second):
    """
    computes actual attack speed for a player with `score`, 
    assuming a player with a score of 100 could attack at
    `attacks_per_second`.  Lower scores are better.
    """
    return attacks_per_second * (100 / score)
代码语言:javascript
复制
>>> speed (100, 2)
2.0
>>> speed (120, 2)
1.6666666666666667
>>> speed (80, 2)
2.5

编辑:因为我第一次误读了,你想要更高的分数来提供更低的速度,把100/分倒转到分数/100。原件保存于此:

代码语言:javascript
复制
def speed_inverse(score, attacks_per_second):
    """
    as above, but higher scores are better
    """
    return attacks_per_second * (score / 100)
代码语言:javascript
复制
>>> speed (120, 2)
2.4
>>> speed (80, 2)
1.6
票数 1
EN

Stack Overflow用户

发布于 2015-01-31 03:28:15

那只是组织。:)

代码语言:javascript
复制
attack_delay = 200 / speed

现在使用speed = 100,您将有两秒钟的攻击间隔。使用speed = 50,您将有4秒的攻击间隔。speed = 200每秒给你一次攻击。

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

https://stackoverflow.com/questions/28247744

复制
相关文章

相似问题

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