我在这里找到:exponential sum using recursion.python
在相同的条件下实现完全相同的问题。
简单描述:我们已经开始研究递归,并且有一些问题需要仅使用递归而不使用任何循环来解决。
所以我们被要求编写一个计算指数和的函数。
这是我的尝试:
def exp_n_x(n, x):
if n <= 0:
return 1
return (x/n)*exp_n_x(n-1, x)
它实际上只计算第n个,而不将其他相加到i=0。
我试图让函数对每个指数元素求和:
def exp_n_x(n, x):
if n <= 0:
return 1
sum = (x/n)*exp_n_x(n-1, x)
n = n - 1
return sum + (x/n)*exp_n_x(n-1, x)
但这对我没有帮助...... 谢谢。
最佳答案
您非常接近第一个函数中的解决方案,但您缺少两个关键的东西:您需要将 x
提高到 n
的幂并将其除以通过n!
(n 阶乘)。阶乘函数是从 1
到 n
的所有整数的乘积,特殊情况是 0!
是 1
>。此外,当您需要一笔金额时,您正在创建一个产品。将这些放在一起,您将得到:
def factorial(n):
if n < 2:
return 1
return n * factorial(n - 1)
def exp_n_x(n, x):
if n < 1:
return 1
return x ** n / factorial(n) + exp_n_x(n - 1, x)
关于python-3.x - Python 中使用递归求指数和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53545458/