通常 f(n) = m*f(n-1)+n
n太大深度太深,就不能计算了
此时可以做个变通,让f有记忆功能,然后在外面
for i in range(n):
f(i)
从而绕开递归深度的问题
sample:
#this will....
def f(n):
if n < 2:
return 1
return f(n-1)+f(n-2)
#to this,will work fine
dRes = {}
def f2(n):
if n in dRes:
return dRes[n]
dRes[n] = dRes[n-1] + dRes[n-2]
return dRes[n]
for i in range(n):
f2(i)
阅读(2190) | 评论(0) | 转发(0) |