设有一对新生的兔子从第3个月开始他们每个月月初都生一对新兔子,
新生的兔子从第3个月开始又每个月月初生一对兔子,
求n个月后兔子的总对数
这个和求第n个斐波那契数有着异曲同工之妙
为什么n要-1

  • 我们假设初始的这一对兔子是0个月
  • 过1个月长1个月,长了2个月后,第3个月月初,它才2个月吧,就可以生兔子了
  • 新生的一对兔子是月初出生的,所以过完那个月就一个月大了,再过1个月就可以生兔子了
  • 所以初始化的时候是没有一个月的兔子的,需要过一个月才有,所以我们就减少一次循环
    注意我这也只是推理,并没有去根据规律去做
def f(n):# 一个月的兔子a = 1# 二个月的兔子b = 0# 成年兔c = 0for i in range(n-1):# 过一个月新生的兔子数目应该等于上个月成年兔子的数目加上2个月大的兔子的数目# 注意刚生出来是月初,过完这个月就1个月大了,所以新生兔子就可以直接理解成是1个月大的兔子a,b,c = b+c,a,b+cprint(a+b+c)f(1)# 1
f(2)# 1
f(3)# 2
f(4)# 3
f(5)# 5
f(6)# 8
f(7)# 13
f(10)# 55# 函数递归
def f1(n):if n in [1,2]:return 1return f1(n-1)+f1(n-2)print(f1(1),f1(2),f1(3),f1(4),f1(5),f1(6),f1(7),f1(8),f1(9),f1(10))
# 1 1 2 3 5 8 13 21 34 55

设有一对新生的兔子从第4个月开始他们每个月月初都生一对新兔子,
新生的兔子从第4个月开始又每个月月初生一对兔子
思路差不多

def fn(n):# 第一个月a = 1# 第二个月b = 0# 第三个月c = 0# 成年d = 0for i in range(n-1):a,b,c,d = c+d,a,b,c+dprint(sum((a,b,c,d)))fn(1)# 1
fn(2)# 1
fn(3)# 1
fn(4)# 2
fn(5)# 3
fn(6)# 4
fn(7)# 6
fn(8)# 9
fn(9)# 13
fn(10)# 19# 我们从这也能发现规律,从第4个数字开始,它等于前第1数字加上前第3个数字的和
# 递归
def fn1(n):if n in range(1,4):# 注意含头不含尾return 1return fn1(n-1) + fn1(n-3)print(fn1(1),fn1(2),fn1(3),fn1(4),fn1(5),fn1(6),fn1(7),fn1(8),fn1(9),fn1(10))
# 1 1 1 2 3 4 6 9 13 19

5个月出生、6个月出生也可以去推一推
我不知清楚我这样的推理对不对,因为这个东西也困扰了我很久,希望对大家有所帮助,大家要是有什么不同的见解,可以分享分享,或是我哪里的思路有不对的,还望指出!!十分感谢

仅代表个人理解 最后不要不要忘记点赞支持一下哦QAQ

Pyhton 兔子繁衍问题(后有递归求法)(设有一对新生的兔子从第4个月开始他们每个月月初都生一对新兔子, 新生的兔子从第4个月开始又每个月月初生一对兔子,求n个月后兔子的总对数)相关推荐

  1. 逃跑吧少年维护服务器,逃跑吧少年—逃跑吧少年3月6日更新公告 新增道具卡新时装...

    逃跑吧少年-逃跑吧少年3月6日更新公告 新增道具卡新时装 发表时间: 2019-03-09     作者:7k7k <逃跑吧少年>服务器将于2019年3月6日(周三)9:00-11:00进 ...

  2. c语言兔子繁衍问题递归,一对

    参考文献:https://spring.io/blog/2018/09/24/spring-data-jdbc-references-and-aggregates 1.多对多关系处理 场景介绍:一个人 ...

  3. 一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?

    一对兔子,从出生后第3个月起每个月都生一对兔子.小兔子长到第3个月后每个月又生一对兔子.假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在 ...

  4. 一对老耗子,每个月都生一对小耗子。小耗子长3个月,第四个开始变成老耗子开始生! 假如都不死,那么请问24个月后有多少只耗子?...

    package 第五天的作业; /** 一对老耗子,每个月都生一对小耗子.小耗子长3个月,第四个开始变成老耗子开始生!假如都不死,那么请问24个月后有多少只耗子?*/ /* y 老耗子的数量x1 一个 ...

  5. PTA习题4-11 兔子繁衍问题 (15 分)-好容易入坑

    综述: 刷了40多道题,论最坑爹的一道题我认为非兔子繁衍莫属,我刷这道题花了一整个下午,自认为我是对的,但是上传到PTA总是部分正确,最后屈服了在网上搜了下,最后终于发现问题:就是如何才算3个月,我所 ...

  6. 习题4-11 兔子繁衍问题 (详解)(15 分)

    一对兔子,从出生后第3个月起每个月都生一对兔子.小兔子长到第3个月后每个月又生一对兔子.假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在 ...

  7. 7-27 兔子繁衍问题(15 分)

    一对兔子,从出生后第3个月起每个月都生一对兔子.小兔子长到第3个月后每个月又生一对兔子.假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对? 输入格式: 输入在 ...

  8. c语言兔子繁殖问题分析和递归方程,经典的兔子生兔子问题(C#递归解法)

    古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 思路:先求出每个月新增的兔子,再用循环求和即可算出这个月 ...

  9. 实验4-1-10 兔子繁衍问题 (15 分)

    实验4-1-10 兔子繁衍问题 (15 分) 一对兔子,从出生后第3个月起每个月都生一对兔子.小兔子长到第3个月后每个月又生一对兔子.假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月 ...

  10. matlab兔子繁殖问题,斐波那契数列在《疯狂动物城》兔子繁衍中的应用

    摘    要: 计算思维的构建有助于帮助学生将实际问题转换为透明易懂的框架算法, 并借助计算机解决.以电影<疯狂动物城>中的兔子繁殖问题为例, 引出斐波那契数列, 引导学生将数学表达式转化 ...

最新文章

  1. dos2unix批量转换的脚本
  2. sql复杂查询语句总结
  3. jquery easyui datagrid实现单行的上移下移,以及保存移动的结果
  4. 50兆 svg 文件超过_中山兆驰产业园项目开工,预计竣工投产时间为…
  5. java代码中哪些不能犯的错误_Java程序员工作中千万不能犯的3个低级错误
  6. ieee期刊_论文绘图神器来了:哈佛博士后开源,一行代码绘制不同期刊格式图表...
  7. postgreSQL入门01-安装
  8. Android之获取屏幕和视图高和宽
  9. 【计算机系统设计】实践笔记(2)数据通路构建:第一类R型指令分析(1)
  10. 抓住眼球的美食海报模板|总有设计技法,吸引住你
  11. linux open o_creat 失败,linux C代码 open函数参数:O_APPEND问题求助
  12. 使用Lucene检索文档中的关键字
  13. shell 脚本编程总结
  14. 具体化和实例化的应用
  15. php赛车,php调用接口及三分赛车平台搭建出租编写接口
  16. Maven工程pom.xml文件秒变gradle工程的命令
  17. MyBatis3 注解SQL 的使用方法
  18. 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别【转】
  19. Python读取PDF文档并翻译
  20. matlab qpsk调制程序,qpsk调制与解调系统的matlab实现

热门文章

  1. 使用CubeMX配置STM32L476RG,Timer触发ADC采集通过DMA搬运
  2. Deep Learning中的层结构
  3. dz论坛php如何使用html模板,discuz自定义模板制作方法
  4. [渝粤教育] 西南石油大学 钻井与完井工程 参考 资料
  5. threejs中引入draco压缩后的模型
  6. ThreeJs DRACO压缩并加载gltf模型
  7. C1083: 无法打开包括文件:“corecrt.h”
  8. 【uniappAPP实现支付宝授权登录】
  9. glTexSubImage2D的使用详解
  10. 电气火灾监控系统在地铁供配电系统中的应用