我想提高递归计算值的性能
n = 100
def T(n,k):
q = 0
if n == 0 and k == 0:
return(1)
q = 1
if k>n or n<0:
return(0)
q = 1
if q != 1:
return(T(n-1,k-1)+n*T(n-1,k))
for i in range(n):
for n in range(i+1):
print(T(i,n))
print("*********")
但是,我只找到了使用仅接受 1 个参数的函数来执行此操作的方法,如下所示:
def mem(f):
memory = {}
def inner_function(x):
if x not in memory:
memory[x] = f(x)
return memory[x]
else:
return memory[x]
return inner_function
@mem
def fibonacci(n):
if n == 1 or n == 0:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
我正在考虑做一个二维数组,但我还不知道(假设这是可能的)使用列表列表这样做的想法会有什么帮助。
当年话下
森栏
相关分类