【Python】斐波那契数列之兔子问题
目录
兔子问题
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】斐波那契数列之兔子问题相关推荐
- python斐波那契数列前20项_Python每日一练之实现斐波那契数列
概述 今天主要分享下怎么用Python实现斐波那契数列,大家有空可以玩一下~ 需求 用Python脚本实现斐波那契数列. 思路 斐波那契数列,也称兔子数列,是指1,1,2,3,5,8,13,21,34 ...
- python程序题斐波那契数列通项公式,Python斐波那契数列应用,编程练习题实例六...
python斐波那契数列,本文是关于Python编程练习题和答案实例六,斐波那契数列应用的示例.引用百度关于斐波那契数列的介绍,大家先简单来的了解下,什么是斐波那契数列? 斐波那契数列(Fibonac ...
- 斐波那契数列(兔子繁殖)
斐波那契数列也叫兔子繁殖问题. 这段我写的是在一年内(12个月)一共有对少对兔子. 1.第1个月和第2个月都为1 2.往后每月等于前两个月相加之和 有错误望大佬帮忙更改,谢谢!!
- python斐波那契数列前20项_兔子繁殖问题带来的智商碾压:斐波那契数列趣谈
本文来自公众号:超级数学建模 微信号 :supermodeling 原文标题:斐波那契数列趣谈 via 善科 by BB 一般认为斐波那契数列的提出是基于兔子的繁殖问题:如果一开始有一对兔子,它们每月 ...
- Python数学计算工具3、Python 斐波那契数列-前500项列表
百度解析: 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数 ...
- python斐波那契数列
转自:https://www.cnblogs.com/wolfshining/p/7662453.html 斐波那契数列即著名的兔子数列:1.1.2.3.5.8.13.21.34.-- 数列特点:该数 ...
- 题目1:斐波那契数列(兔子出生规律)
题目: 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序代码: /*** 题目:古典问题:有一对兔子 ...
- python 斐波那契数列 yield_Python中的yield到底是个什么鬼?
Python大数据分析 记录 分享 成长 相信你已经不止一次在函数中看到关键词,它起着什么作用?返回什么?和又有着什么区别呢?这篇文章将会揭开的神秘面纱,并给出最浅显易懂的例子. 关键字做了什么? 如 ...
- 算法-斐波那契数列:兔子序列
利用递归函数求斐波那契数列(兔子序列) 1.1.2.3.5.8.13.21-求第n个数是几,n任意一个数大家可以自定义,比如10,20等 分析: 从给出的数列中,可知, n=1时→1 n=2时→1 n ...
最新文章
- php file抓取不到内容,深入file_get_contents函数抓取内容失败的原因分析
- python ide如何运行_如何在Ubuntu上安装IDLE Python IDE
- 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16...
- c语言计算时间的编程,C语言实现时间戳转日期的算法(推荐)
- 无向图的直径以及树的直径
- 使用Docker-数据卷命令
- 设置IE默认文本模式的方法
- 图像处理:直方图均衡化
- Css 3d轮播样式
- centos在文本中搜索字符串_Google和Baidu的搜索技巧你会吗?
- 字符串API中的split,substr,substring
- java哪个软件编程好学吗_有什么好学的编程语言吗?
- 商场客流量统计摄像头设备
- 旅游系统(SSM框架 结构+效果图)
- html简单的时分秒计时器,时分秒自定义倒计时计时器
- [软件分享]Bandizip(有史以来最好的压缩软件)「v1.0」
- 简述Thread的interrupt()、interrupted()及isInterrupted()的区别
- iOS 判断APP是否打开定位,并实现直接跳转打开定位
- DASCTF部分复现
- 怎么用 UDP 实现 TCP?