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]