欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python 斐波拉契递归 尾递归 备忘录 动态规划 迭代

发布时间:2025/6/15 python 46 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python 斐波拉契递归 尾递归 备忘录 动态规划 迭代 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1 递归


#coding=utf-8 '''@author: 182 ''' from time import time def fab(n):if n==0:return 0if n==1:return 1if (n!=0 and n!=1):return fab(n-1)+fab(n-2)def main():start = time()print fab(100) stop = time()print(str(stop-start) + "秒")if __name__ == '__main__':main()



2 尾递归


#coding=utf-8'''@author: 182 '''from time import timedef weidigui(n,w1,w2):if n<2:return w1else:return weidigui(n-1,w2,w1+w2)def main(): start = time()print weidigui(99,1,1) stop = time()print(str(stop-start) + "秒") if __name__ == '__main__':main()

3 备忘录

#coding=utf-8'''@author: 182 '''import timelist=[] for i in range(0,1000):list.append(0)def beiwl(n):if list[n]>0:return list[n]if n==0:list[0]=0return list[0] if n==1:list[1]=1return list[1]if n>1:list[n]=(beiwl(n-1)+beiwl(n-2) ) return list[n] def main():start = time.time()print beiwl(99) end = time.time()elapsed = end - startprint "运行时间 ", elapsed, "秒"if __name__ == '__main__':main()



4  迭代


#coding=utf-8 '''@author: 182 ''' from time import time def diedai(n):if n==0:return 0else:f1=0f2=1f3=0for i in range(1,n-1):f3=f1+f2f1=f2f2=f3return f2 def main():start = time()print diedai(100) stop = time()print(str(stop-start) + "秒")if __name__ == '__main__':main()

5 动态规划


#coding=utf-8'''@author: 182 ''' from time import time def fabdp(n):list=[]list.append(0) list.append(1)for i in range(2,n):list.append(list[i-1]+list[i-2])return list[99] def main():start = time()print fabdp(100) stop = time()print(str(stop-start) + "秒")if __name__ == '__main__':main()

总结

以上是生活随笔为你收集整理的python 斐波拉契递归 尾递归 备忘录 动态规划 迭代的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。