Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中使用递归求解此公式?_Python_Recursion - Fatal编程技术网

如何在Python中使用递归求解此公式?

如何在Python中使用递归求解此公式?,python,recursion,Python,Recursion,我必须使用递归来计算以下公式: 我真的不知道该怎么做。这就是我到目前为止所做的: def equation(i): if i == 0: return 15 else: return 我不知道如何在else之后将其转换为递归函数。我认为这是可行的: def equation(i): if i == 0: return 15 return (3*i*i + 2*i + 15) + equation(i-1) 这似乎是一个使用递

我必须使用递归来计算以下公式:

我真的不知道该怎么做。这就是我到目前为止所做的:

def equation(i):
    if i == 0:
        return 15
    else:
        return 
我不知道如何在else之后将其转换为递归函数。

我认为这是可行的:

def equation(i):
    if i == 0: return 15
    return (3*i*i + 2*i + 15) + equation(i-1)

这似乎是一个使用递归的糟糕例子,因为这是一个简单的单行计算。你确定你正确理解了赋值吗?不清楚用递归计算这种表达式意味着什么。递归计算,甚至迭代计算,没有多大意义。自然的实现是
返回3*i**2+2*i+15
。这表明我们缺少了一些重要的上下文。你不是在计算
(3i^2+2i+15)
你是在计算
(3i^2+2i+15)
从0到0的所有
i
值的总和。这个公式与你原来发布的公式不等价,你忽略了非常重要的总和部分。你明白这个等式是怎么说的吗?如果你调用
等式(-1)
的话,它将永远循环下去。通常,求和被解释为
i@LeonardoChirivì我会迂腐地争辩说,负输入应该给出一个0值,而不是一个错误,有点像范围(3,2)中i的a:好吧,它所需要的只是一个输入检查,我没有打扰你