试图找出一个奇怪的数学公式
trying to figure out a weird math formula
所以我正在根据我正在编写的程序的速度等级进行攻击超时,但在数学方面我不是天才。因为我有一个像这样的公式 speed = lambda x: x/50
基本额定速度默认为 100,所以攻击将在 speed(100)
每两秒发生一次。现在我想要的是攻击在更高的额定速度下发生得更快,而在较低的额定速度下发生得更慢。 IE。 speed(98)
会 return 大于 2,而 speed(101)
会 return 小于 2。这些数字只是示例,但要点是是否有一个公式可以return 基于较高基数的较小数字,反之亦然?
示例:speed(101); returns x < y
和 speed(98); returns x > y
y 是常数,例如 2。
怎么样:
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)
>>> speed (100, 2)
2.0
>>> speed (120, 2)
1.6666666666666667
>>> speed (80, 2)
2.5
编辑:因为我第一次看错了,你想要更高的分数来降低速度,将 100/score 倒置为 score/100。原文保存于此:
def speed_inverse(score, attacks_per_second):
"""
as above, but higher scores are better
"""
return attacks_per_second * (score / 100)
>>> speed (120, 2)
2.4
>>> speed (80, 2)
1.6
那只是分裂。 :)
attack_delay = 200 / speed
现在speed = 100
,你将有两秒的攻击间隔。使用 speed = 50
,您将有四秒的攻击间隔。 speed = 200
每秒攻击一次。
所以我正在根据我正在编写的程序的速度等级进行攻击超时,但在数学方面我不是天才。因为我有一个像这样的公式 speed = lambda x: x/50
基本额定速度默认为 100,所以攻击将在 speed(100)
每两秒发生一次。现在我想要的是攻击在更高的额定速度下发生得更快,而在较低的额定速度下发生得更慢。 IE。 speed(98)
会 return 大于 2,而 speed(101)
会 return 小于 2。这些数字只是示例,但要点是是否有一个公式可以return 基于较高基数的较小数字,反之亦然?
示例:speed(101); returns x < y
和 speed(98); returns x > y
y 是常数,例如 2。
怎么样:
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)
>>> speed (100, 2)
2.0
>>> speed (120, 2)
1.6666666666666667
>>> speed (80, 2)
2.5
编辑:因为我第一次看错了,你想要更高的分数来降低速度,将 100/score 倒置为 score/100。原文保存于此:
def speed_inverse(score, attacks_per_second):
"""
as above, but higher scores are better
"""
return attacks_per_second * (score / 100)
>>> speed (120, 2)
2.4
>>> speed (80, 2)
1.6
那只是分裂。 :)
attack_delay = 200 / speed
现在speed = 100
,你将有两秒的攻击间隔。使用 speed = 50
,您将有四秒的攻击间隔。 speed = 200
每秒攻击一次。