python生兔子问题(递归算法)_python递归实现斐波那契数列

python生兔子问题(递归算法)_python递归实现斐波那契数列兔子产子1.问题描述有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总对数为多少?2.问题分析兔子产子

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

兔子产子

 

1.问题描述

有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总对数为多少?
 

2.问题分析

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

月数 小兔子对数 中兔子对数 老兔子对数 兔子总对数
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个月的兔子对数
 

3.算法设计

本题目是典型的迭代循环,即是个不断用新值取代变量的旧值,然后由变量旧值递推出变量新值的过程。这种选代与这些因素有关:初值迭代公式选代次数。经过问题分析,算法可以描述为
fibn-1 = fiibn-1 = 1(n<3) 初值
fibn = fibn-1 + fibn-2(n≥3) 迭代公式
 
Python 语言來描述迭代公式即为fib=fibl+fib2,其中fib为当前新求出的免子对数,fibl 为前一个月的兔子对数,fib2为前两个月的免子对数,然后为下一次选代做准备,fib②给fib1①给fib2,进行如下的赋值 fib2=fib1, fibl=fib,要注意赋值的次序;选代次数由循环变量控制,为所求的月数。
 

4.完整程序

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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166073.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大数据平台安全建设实践[通俗易懂]

    大数据平台安全建设实践[通俗易懂]一、概述在大数据平台建设初期,安全也许并不是被重点关注的一环。大数据平台的定位主要是服务数据开发人员,提高数据开发效率,提供便捷的开发流程,有效支持数仓建设。大数据平台的用户都是公司内部人员。数据本身的安全性已经由公司层面的网络及物理机房的隔离来得到保证。那么数据平台建设过程中,需要考虑哪些安全性方面的问题?环境隔离,数据开发人员应当只需关注自己相关业务域的数据,也应该只能访问这一部分数据…

    2022年5月6日
    37
  • 高清视频编码格式_如何将高清视频转化为蓝光

    高清视频编码格式_如何将高清视频转化为蓝光收藏于2012-01-09迁移自个人百度空间—————————高清视频编码最常用的编码格式是MPEG2-TS、MPEG4、H.264和VC-1这四种算法。          MPEG2由MPEG(MovingPictureExpertsGroup)运动图像专家组制定,这是国际标准化组织(ISO)于1988年成立的专责制定有关运动压缩编码标…

    2022年9月25日
    3
  • django1.8_django-vue-admin

    django1.8_django-vue-admin前言由于之前我们一直使用的django-rest-framework-jwt这个库,但是作者在17年的时候就已经不再维护了(有部分bug没有解决),所以我们也就不用了,目前我们使用django-r

    2022年8月7日
    7
  • P2P技术应用

    P2P技术应用P2P技术应用P2P,即对等连接(peertopeer)是指两个主机在通信时并不区分哪一个是服务请求放还是服务提供方。两个主机都运行了对等连接软件(P2P软件,例如我们平时用的百度云盘、微博网盘、还有死去的360网盘),它们就可以进行平等的、对等的连接通信。这是双方都可以对等的下载对方已经存储在硬盘上中的共享文档。因此这种工作方式也成为P2P文件共享。一、P2P的工作方式概述

    2022年6月19日
    75
  • myeclipse 8.5注册码_激活码有效期

    myeclipse 8.5注册码_激活码有效期注册码如下:Subscriber:sojson.comSubscriberCode:fLR8ZC-855550-7550535783763475 步骤:MyEclipse—-&gt;SubscriptionInformation—-&gt;对应输入以上内容finish即可

    2022年9月29日
    2
  • checkbox(复选框)和radio(单选按钮)的区别与详解

    checkbox(复选框)和radio(单选按钮)的区别与详解选中和取消选中一个复选框后,再次点击它,即可取消选中选中一个单选按钮后,再次点击它,不能取消选中&amp;amp;amp;amp;amp;amp;lt;!DOCTYPEhtml&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;lt;htmllang=&amp;amp;amp;amp;amp;quot;en&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp

    2022年5月7日
    156

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号