目录

兔子问题

1.1.问题描述

1.2.问题分析

1.3.解决实现


兔子问题

1.1.问题描述

斐波那契在计算之书中,提出了一个有趣的兔子问题:

若一对成年兔子每个月恰好生下一对小兔子,一雌一雄,在年初时只有一对小兔子,在第一个月结束时,他们成长为成年兔子,并且第二个月结束时,这对成年兔子将生下一对小兔子,这种成长与繁殖的过程会一直持续下去,并假设生下的小兔子不会死,那么一年之后共可有多少对兔子?

1.2.问题分析

第一个月 1对幼兔

第二个月 1对成兔

第三个月 1对成兔--->1对幼兔

第四个月 1对成兔--->1对幼兔

1对成兔

第五个月 1对成兔--->1对幼兔

1对成兔---->1对幼兔

1对成兔

第六个月  1对成兔---->1对幼兔

1对成兔---->1对幼兔

1对成兔---->1对幼兔

1对成兔

1对成兔

我们可以发现,这形成了一个序列:1,1,2,3,5,8,13,21……

然后现在我们把每个月都可以列出来:

月份 1 2 3 4 5 6 7 8 9 10 11 12
只数 1 1 2 3 5 8 13 21 34 55 89 144

可以得出结论,一年后有144只兔子

我们把这种:f(n)=f(n-1)+f(n-2) 称为斐波那契数列

我们可以把最后两位数取出来:89/144  55/89  34/55 …… 得出的结果都约等于0.618=黄金分割比,所以斐波那契数列又称为黄金分割数列

1.3.解决实现

使用递归函数方法解决:

def fibo(n):if n == 0:return 0if n == 1:return 1return fibo(n-1)+fibo(n-2)
#使用for循环打印出1-12月有多少对兔子
for i in range(1,13):print('第{}个月,有{}对兔子'.format(i,fibo(i))) #format格式化字符串的方法>>>第1个月,有1对兔子
第2个月,有1对兔子
第3个月,有2对兔子
第4个月,有3对兔子
第5个月,有5对兔子
第6个月,有8对兔子
第7个月,有13对兔子
第8个月,有21对兔子
第9个月,有34对兔子
第10个月,有55对兔子
第11个月,有89对兔子
第12个月,有144对兔子

使用while循环放在一个列表里:(不使用递归)

def fibo(n):global fibo_listfibo_list=[0,1]i=2while i<=n:fibo_list.append(0) #先增加一个元素,不然下一句代码会提示下标越界fibo_list[i]=fibo_list[i-1]+fibo_list[i-2]i+=1return fibo_list
print(fibo(12))>>>[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]

【Python】斐波那契数列之兔子问题相关推荐

  1. python斐波那契数列前20项_Python每日一练之实现斐波那契数列

    概述 今天主要分享下怎么用Python实现斐波那契数列,大家有空可以玩一下~ 需求 用Python脚本实现斐波那契数列. 思路 斐波那契数列,也称兔子数列,是指1,1,2,3,5,8,13,21,34 ...

  2. python程序题斐波那契数列通项公式,Python斐波那契数列应用,编程练习题实例六...

    python斐波那契数列,本文是关于Python编程练习题和答案实例六,斐波那契数列应用的示例.引用百度关于斐波那契数列的介绍,大家先简单来的了解下,什么是斐波那契数列? 斐波那契数列(Fibonac ...

  3. 斐波那契数列(兔子繁殖)

    斐波那契数列也叫兔子繁殖问题. 这段我写的是在一年内(12个月)一共有对少对兔子. 1.第1个月和第2个月都为1 2.往后每月等于前两个月相加之和 有错误望大佬帮忙更改,谢谢!!

  4. python斐波那契数列前20项_兔子繁殖问题带来的智商碾压:斐波那契数列趣谈

    本文来自公众号:超级数学建模 微信号 :supermodeling 原文标题:斐波那契数列趣谈 via 善科 by BB 一般认为斐波那契数列的提出是基于兔子的繁殖问题:如果一开始有一对兔子,它们每月 ...

  5. Python数学计算工具3、Python 斐波那契数列-前500项列表

    百度解析: 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数 ...

  6. python斐波那契数列

    转自:https://www.cnblogs.com/wolfshining/p/7662453.html 斐波那契数列即著名的兔子数列:1.1.2.3.5.8.13.21.34.-- 数列特点:该数 ...

  7. 题目1:斐波那契数列(兔子出生规律)

    题目: 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序代码: /*** 题目:古典问题:有一对兔子 ...

  8. python 斐波那契数列 yield_Python中的yield到底是个什么鬼?

    Python大数据分析 记录 分享 成长 相信你已经不止一次在函数中看到关键词,它起着什么作用?返回什么?和又有着什么区别呢?这篇文章将会揭开的神秘面纱,并给出最浅显易懂的例子. 关键字做了什么? 如 ...

  9. 算法-斐波那契数列:兔子序列

    利用递归函数求斐波那契数列(兔子序列) 1.1.2.3.5.8.13.21-求第n个数是几,n任意一个数大家可以自定义,比如10,20等 分析: 从给出的数列中,可知, n=1时→1 n=2时→1 n ...

最新文章

  1. php file抓取不到内容,深入file_get_contents函数抓取内容失败的原因分析
  2. python ide如何运行_如何在Ubuntu上安装IDLE Python IDE
  3. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16...
  4. c语言计算时间的编程,C语言实现时间戳转日期的算法(推荐)
  5. 无向图的直径以及树的直径
  6. 使用Docker-数据卷命令
  7. 设置IE默认文本模式的方法
  8. 图像处理:直方图均衡化
  9. Css 3d轮播样式
  10. centos在文本中搜索字符串_Google和Baidu的搜索技巧你会吗?
  11. 字符串API中的split,substr,substring
  12. java哪个软件编程好学吗_有什么好学的编程语言吗?
  13. 商场客流量统计摄像头设备
  14. 旅游系统(SSM框架 结构+效果图)
  15. html简单的时分秒计时器,时分秒自定义倒计时计时器
  16. [软件分享]Bandizip(有史以来最好的压缩软件)「v1.0」
  17. 简述Thread的interrupt()、interrupted()及isInterrupted()的区别
  18. iOS 判断APP是否打开定位,并实现直接跳转打开定位
  19. DASCTF部分复现
  20. 怎么用 UDP 实现 TCP?

热门文章

  1. css中,如何给文字添加描边效果?
  2. Spatial Pyramid Matching 小结
  3. 基于 SpringBoot + Vue 实现的可视化拖拽编辑的大屏项目
  4. 软件方法(下)分析和设计第8章连载[20210518更新]
  5. 【微服务】Nacos为什么丢弃短连接(http)而选择拥抱长连接(gRPC)
  6. Lucky辉-面经准备(操作系统)
  7. 辉仔日记之学代码第十八期——Mysql事务
  8. WINDOWS也可以象LINUX一样建立符号链接
  9. Java生产Pdf文件,注意事项(坑)
  10. 原码、反码、补码及减法运算