今日のクラスでの再帰とスタックオーバーフローの興味深いトピックですが、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
明らかに、より高い階乗を繰り返し見つけることができますが、議論と陰謀のために、最大再帰深度を増やすことができますか?
import sys
sys.setrecursionlimit(2000)
import sys
iMaxStackSize = 5000
sys.setrecursionlimit(iMaxStackSize)