基本上我有在Python這個龐大的函數(我已經簡化到裸基礎知識)需要使這個遞歸算法迭代由於堆棧溢出
def rec(a,b):
if stoppingCondition==True: return 1
key=(a,b)
if key in memo: return memo[key]
if b==side condition:
memo[key]=rec(a+1,b) #RECURSIVE CALL
return memo[key]
total=0
for d in D:
if condition1==True:
b=some process 1
total+=rec(a+1,b) #RECURSIVE CALL
elif condition2==True:
for x,y in d:
if (some break condition==True): break
else: #only gets called if break didnt happen
b=some process 2
total+=rec(a+1,b) #RECURSIVE CALL
memo[key]=total
return memo[key]
,我有一個時間讓赫克它是迭代的,因爲它爲更深的遞歸級別打了折扣。我已經閱讀了關於轉換爲循環和堆棧的其他線程,以及不能使用它的任何工作。
我想我試過setrecursionlimit事情協議棧的方法BTW – 2012-04-14 23:06:27