前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python第二十三课:递归斐波那契

Python第二十三课:递归斐波那契

作者头像
红芽
发布2020-08-19 01:42:30
6260
发布2020-08-19 01:42:30
举报
文章被收录于专栏:红芽技术红芽技术

斐波那契(fibonacci) 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

斐波那契(fibonacci)应用 蒙拉丽莎的微笑

Python第二十三课:递归斐波那契

斐波那契(fibonacci)数列代码实例 Python第二十三课:递归斐波那契

假设兔子在2个月之后就有了繁殖能力,每个月可以产下一对兔子,如果不考虑死亡的售后,一年后他们总共有多少对兔子。

迭代 def tuzidd(n):

代码语言:javascript
复制
n1 = 1 #第一个月是1
n2 = 1 #第二个月还是1
n3 = 1 #第三个月默认是一
if n < 1:
    print('输入有误')
    return -1
while (n-2)>0:
    n3 = n2 + n1
    print(n3,n2,n1)
    #2 1 1
    #3 2 1
    #5 3 2
    #5
    n1 = n2
    n2 = n3
    n -= 1
return n3

print(tuzidd(5)) 其实一开始是不理解的,后面在代码中布置了print,来判断每一次的结果,后面就看得比较明显了。右边赋值给左边

递归

递归计算20个月的兔子数量

def tuzi(n):

代码语言:javascript
复制
if n==1 or n ==2:
    return 1
elif n >2:
    return tuzi(n -2) + tuzi(n -1)

print(tuzi(12)) 分治算法 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 递归计算20个月的兔子数量
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档