Python中达到最大递归深度
时间:2020-02-23 14:35:27 来源:igfitidea点击:
在本教程中,我们将看到达到Python中达到的最大递归深度。
这可以通过增加Python中的递归深度来解决。
如果我们正在获得运行时错误,则达到最大递归深度。
然后,我们可以提高默认递归深度,默认为1000.我们需要在脚本中导入SYS模块并按照以下代码。
sys.setrecursionlimit(1500)
它将将默认递归深度增加到1500。
但我不会建议使用此策略,而是如果可能,应该将算法重写为迭代之一。
Python不优化尾部递归,不受控制的回收导致堆栈溢出。
例如:而不是Fibonacci Rocival算法
def recursive_fibonacci(n): if n <= 1: return n else: return(recur_fibo(n-1) + recur_fibo(n-2))
我们可以使用迭代算法。
def iterative_fibonacci(n): fibs = [0, 1, 1] for f in range(2, n): fibs.append(fibs[-1] + fibs[-2]) return fibs[n]