如何增加 Python 中的最大递归深度? [复制]
Posted
技术标签:
【中文标题】如何增加 Python 中的最大递归深度? [复制]【英文标题】:How could you increase the maximum recursion depth in Python? [duplicate] 【发布时间】:2016-02-18 20:47:59 【问题描述】:今天课堂上递归和堆栈溢出的有趣话题,我想知道是否有任何方法可以增加 Python 中的最大递归深度?写了一个使用递归查找 n 阶乘的快速函数:
def factorial(n):
if n == 1:
return n
else:
return n * factorial(n-1)
它可以处理阶乘(994),但不能处理阶乘(995)。给出的错误是:
RuntimeError: maximum recursion depth exceeded in comparison
显然可以迭代找到更高的阶乘,但是为了争论和阴谋,最大递归深度可以增加吗?
【问题讨论】:
docs.python.org/2/library/sys.html#sys.setrecursionlimit 注意这里避免过多递归的标准方法是使用记忆化。 不,这里没有仇恨。我们都在这里帮助他人。作为骗子关闭并不意味着我们恨你。未来一切顺利。 如果使用递归实现阶乘程序是必要的。您可以通过以下方式实现它,该方式能够使用 python 无限制地找到阶乘。 drive.google.com/file/d/1A0z9eyXD5mNIAZRotX5RM2QAu9bbZqHa/… 【参考方案1】:import sys
sys.setrecursionlimit(2000)
【讨论】:
【参考方案2】:import sys
iMaxStackSize = 5000
sys.setrecursionlimit(iMaxStackSize)
【讨论】:
以上是关于如何增加 Python 中的最大递归深度? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
PyQt4 python中的“RuntimeError:调用Python对象时超出最大递归深度”错误