基本的に私は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]
そして、それがより深い再帰レベルのために爆発するので、私はそれを反復的にするのにかなりの時間を費やしています。ループやスタックへの変換などについては、他のスレッドをすでに読んでいますが、どれも機能させることができません。