讨论区 分享作业区 主题详情
逸仙森
第四章第一个作业 fibonacci的作业

#作业算法
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)

所有回复(0)

回复

最近活动:
创建时间:
浏览次数:552
关注人数:0