2015-11-17 38 views
7

今天在课堂上递归和堆栈溢出的有趣话题,我想知道是否有任何方法来增加Python中的最大递归深度?写了一个快速功能查找N使用递归的阶乘:如何增加Python中的最大递归深度?

def factorial(n): 
    if n == 1: 
     return n 
    else: 
     return n * factorial(n-1) 

它可以与阶乘(994)应付而不是阶乘(995)。给出的错误是:

RuntimeError: maximum recursion depth exceeded in comparison 

显然更高阶乘可以反复找到,但为了讨论和阴谋的缘故,可以最大递归深度增加?

+1

https://docs.python.org/2/library/sys.html#sys.setrecursionlimit – freakish

+5

注意避免这里太多的递归调用的标准方法是使用记忆化。 –

+2

不,在这里没有仇恨。我们都在这里帮助别人。作为复制品收尾并不意味着我们*讨厌*你。未来一切顺利。 –

回答

8
import sys 

sys.setrecursionlimit(2000) 
5
import sys 

iMaxStackSize = 5000 
sys.setrecursionlimit(iMaxStackSize)