Python:Float对象无法迭代

时间:2017-12-01 06:55:10

标签: python recursion

我必须计算一个具有递归的方程。但是,如果我执行代码,我会得到Float对象不可迭代的失败

我的代码是:

def v(t, c):
    result = []
    if t == 0 or c == 0:
        return 0
    q = v(t - 1, c) - v(t - 1, c - 1)

    return max((0.2*(400-q)), (0.6*(400-q)), (1*(1200-q)), (0.85*(1115-q)), (0.87*(1127-q))) + v(t-1,c)

x = v(2,1) 打印(x)的

我该怎么做才能得到结果?谢谢

2 个答案:

答案 0 :(得分:0)

你正在使用max(),但你的函数中的args是一个元组(0.85 *(1115-q))+(0.87 *(1127-q)),这是不对的

答案 1 :(得分:0)

max()需要传递多个参数,在您的情况下,只有一个参数会导致错误。请尝试删除max或向max()函数添加一个结果,以使其正常运行。

def v(t, c):
    result = []
    if t == 0 or c == 0:
        return 0
    q = v(t - 1, c) - v(t - 1, c - 1)
    return ((0.85 * (1115 - q)) + (0.87 * (1127 - q))) + v(t - 1, c)

x = v(2, 1)
print(x)