def f1(t):
if t < 0:
return 0
result = 0
result = 1.5 * f2(t-1) + 3.5 * f1(t-1)
return result
def f2(t):
if t < 0:
return 1
result = 0
result = 1.5 * f1(t-1) + 3.5 * f2(t-1)
return result
for i in range(10):
result = 0
result = f1(i) + f2(i)
print(result)
运行上面的代码需要花费很多时间。我想将f1()和f2()的执行次数限制为for-loop 中每次迭代的10次执行,然后继续执行下一个for-loop值。怎么做?
答案 0 :(得分:0)
您可以使用关键字参数传递递归深度。
def f1(t, _max_depth=10):
if _max_depth > 0:
if t < 0:
return 0
result = 0
result = 1.5 * f2(t-1, _max_depth=_max_depth - 1) + 3.5 * f1(t-1, _max_depth=_max_depth - 1)
return result
else:
# return some default value here
您可以对f2
执行相同操作。