首页后端开发PythonPython怎样计算兔子生崽问题,思路是什么?

Python怎样计算兔子生崽问题,思路是什么?

时间2024-03-23 11:48:02发布访客分类Python浏览418
导读:Python怎样计算兔子生崽问题?兔子生崽问题其实是很经典的一个斐波那契数列算法练习,具体的问题是,一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有的兔子都不死,那么30个月内每个月的兔子总...

Python怎样计算兔子生崽问题?兔子生崽问题其实是很经典的一个斐波那契数列算法练习,具体的问题是,一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有的兔子都不死,那么30个月内每个月的兔子总对数为多少呢?接下来小编就和大家一起来分析和解决这个问题。

问题分析

兔子产子问题是一个有趣的古典数学问题,我们画一张表来找下兔子数的规律,如下表所示

月数 小兔子对数 中兔子对数 老兔子对数 兔子总对数
1 1 0 0 1
2 0 1 0 1
3 1 0 1 2
4 1 1 1 3
5 2 1 2 5
6 3 2 3 8
7 5 3 5 13

说明:不满1个月的兔子为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。

可以看出,每个月的兔子总数依次为1,1,2,3,5,8,13...这就是Fibonacci数列。总结数列规律即为从前两个月的兔子对数可以推出第3个月的兔子对数

算法设计

本题目是典型的迭代循环,即是个不断用新值取代变量的旧值,然后由变量旧值递推出变量新值的过程。这种选代与这些因素有关:初值迭代公式选代次数

经过问题分析,算法可以描述为:

fibn-1 = fiibn-1 = 1(n3) 初值
fibn = fibn-1 + fibn-2(n≥3) 迭代公式

Python 语言-描述迭代公式即为fib=fibl+fib2,其中fib为当前新求出的免子对数,fibl 为前一个月的兔子对数,fib2为前两个月的免子对数,然后为下一次选代做准备,fib②给fib1①给fib2,进行如下的赋值 fib2=fib1, fibl=fib,要注意赋值的次序; 选代次数由循环变量控制,为所求的月数。

完整程序

Bash
if __name__=="__main__":
    fib1 = 1
    fib2 = 1
    i = 1
    while i = 15:  #每次求两个,因此循环变量循环到15
        print("%8d    %8d" %(fib1, fib2), end="      ")
        if i % 2 == 0:
            print()
        fib1 = fib1 + fib2  # 最新一个月的兔子数
        fib2 = fib1 + fib2  # 第4个月的兔子数
        i += 1

以上就是关于Python计算兔子生崽问题的解答,这篇算法练习对大家学习和理解斐波那契数列有一定的参考价值,需要的朋友可以了解看看。最后,想要了解更多斐波那契数列的内容,可以继续浏览网络其他相关的文章。

文本转载自脚本之家

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Python怎样计算兔子生崽问题,思路是什么?
本文地址: https://pptw.com/jishu/651319.html
php判断数组里是否有多个值的方法是什么呢? Oracle rowid是什么意思,如何验证查看rowid

游客 回复需填写必要信息