#作业算法
origin_list = [1,1]
def create(flist):
def extendList(n):
i = len(flist)-1
while len(flist) < n:
flist.append(flist[i]+flist[i-1])
i += 1
return flist[n-1]
return extendList
fib = create(origin_list[:])
#传统算法
def fibOld(n):
a=1
b=1
i=2
if n <= 2:
return 1
else:
while i < n:
a,b = b,a+b
i +=1
return b
#测试
if __name__ == '__main__':
import time
import random
min_test_bound = 1
max_test_bound = 1000
num = 1000
nlist = [random.randint(min_test_bound,max_test_bound) for i in range(num)]
start = time.time()
fib_list = [fib(n) for n in nlist]
end = time.time() - start
print('作业算法的消耗时间是',end)
start = time.time()
fib_old_list = [fibOld(n) for n in nlist]
end = time.time() - start
print('经典算法的消耗时间是',end)