0

这是我在python中的公式

实现数学函数 f(x) = -5 x5 + 69 x2 - 47

定义数学函数

def math_formula(x):

# This is the formula
    math_formula = -5 * (x**5) + 69 *(x**2) - 47
    return math_formula

打印我们范围内的值

for value in range (0,4):
    print 'For f(',(value),')', 'the number is:' , math_formula(value)

print ''    
print ('The the maximum of these four numbers is:'), max(math_formula(value))

该函数返回 f(0) 到 f(3) 的所有数字。

有人可以回答以下问题:为什么此打印不返回最大数量?

print ('The the maximum of these four numbers is:'), max(math_formula(value))

它返回范围内较大的负数。我不知道如何返回最大正数。如何返回最大正数。

4

4 回答 4

4
max(math_formula(value) for value in range(0, 4))
于 2013-04-24T09:48:20.280 回答
1

max()需要处理一个序列。您需要将所有计算的列表传递给它。试试这个变化:

results = []
for value in range(0, 4):
    print 'For f(',(value),')', 'the number is:' , math_formula(value)
    results.append(math_formula(value)) # add the value to the list

print ''
print 'The maximum of these four numbers is:', max(results)

您还可以简化您的math_formula方法:

def math_formula(x):
    return -5 * (x**5) + 69 *(x**2) - 47
于 2013-04-24T09:47:52.450 回答
1

尝试:

max((math_formula(value) for value in xrange(0,4)))

编辑

对于您的口译员:

max([math_formula(value) for value in range(0,4)])
于 2013-04-24T09:49:29.660 回答
0

我们也可以使用它 max(a[i:i+k]) 来获得一个范围内的最大值

于 2018-01-21T07:22:08.370 回答