兔子数列(斐波那契数列)

       兔子数列又称斐波那契数列、黄金分割数列,它由数学家列昂纳多·斐波那契以兔子繁殖的例子引出,故此得名。兔子繁殖的故事如下:
       兔子一般在出生两个月之后就有了繁殖能力,每对兔子每月可以繁殖一对小兔子,假如所有的兔子都不会死,试问一年以后一共有多少对兔子?
       本案例通过编写代码,利用递归实现根据月份计算兔子总数量的功能

案例分析 

       对兔子数列问题进行归纳分析,以n 表示月份:

       当n=1,2时,只有1对兔子:
       当n=3时,有一对兔子出生,此时有 2对兔子:
       当n=4时,n=3时出生的兔子尚不能生育,本月只有一对兔子出生,此时有3 对兔子;
       当n=5时,4月之前的两对兔子各生一对兔子,加上4月的3 对兔子,此时共有5对兔子;
       当n=6时,5月之前的3对兔子各生一对兔子,加上5月的5对兔子,共有8对兔子;
........
       以此类推,第n个月时兔子的数量,等于第 n-1个月时兔子的数量,加上第n-2个月时兔子的数量。以f(n)表示每个月兔子的数量,则满足以下公式:

\left\{\begin{matrix} f(n)=1(n=1) \\ f(n)=f(n-1)+f(n-2)(n>1) \end{matrix}\right.
将 f(n)视为一个关于月份的函数,根据上述公式可知,在求解当月兔子数量时,需要再次借用该函数自身。

def tuzi (month):
    if month == 0 or month == 1:
        return 1
    else:
        return tuzi(month-1)+tuzi(month-2)
result = tuzi(12)
print(result)

 运行程序,结果如下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是今山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值