兔子问题与斐波那契数列
#题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
#假如兔子都不死,问每个月的兔子总数为多少?
#通过数学分析我们知道,兔子的规律为数列1,1,2,3,5,8,13,21....
#程序分析:因此只需要按照数学的规律来进行计算就OK了
# _*_ coding:utf-8 _*_
def count1(n):last1,now1 = 1next1 = 1for i in range(n):if i < 2 :next1 = 1else:next1 = last1+now1last1=now1now1=next1print next1,return next1print '\n最终结果是%d' % (count1(6))
然后我们发现这个问题,这个数字规律很熟悉,这正是 斐波那契数列
类似的方式输出斐波那契數列前 N 个数
# _*_ coding:utf-8 _*_
def fab(max):n, a, b = 0, 0, 1while n < max:print b , a, b = b, a + bn = n + 1
fab(8)
结果
=============================
>>>
1 1 2 3 5 8 13 21
>>>
如果使用这种方法,直接在 fab 函数中用 print 打印数字会导致该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列。
要提高 fab 函数的可复用性,最好不要直接打印出数列,而是返回一个 List。
但是如果使用List, 当传进来的参数过大的时候, 会占用许多内存。
我们既想代码简单,又想占用内容小, 就需要使用迭代器了
# _*_ coding:utf-8 _*_
def fab(max):n, a, b = 0, 0, 1 while n < max:yield b # print b a, b = b, a + b n = n + 1for i in fab(6):print i,
也就是说将函数中的打印语句 换成 yield 语句, 以迭代器的形式来完成
兔子问题与斐波那契数列相关推荐
- 兔子繁殖问题 斐波那契数列 java实现
兔子繁殖问题 斐波那契数列 java实现 问题描述 一对兔子,从出生后第3个月起每个月都生一对兔子. 小兔子长到第3个月开始每个月又生一对兔子. 假如兔子都不死, 请问第1个月出生的一对兔子,第n个月 ...
- 兔子问题,斐波纳契数列
题目:古典问题(斐波纳契数列):有一对兔子,从出生后3个月起每个月都生一对兔子,小兔子长到第三个月又会生一对兔子,假如兔子都不死,问每个月兔子总数? 分析规律:1 1 2 3 5 8 13 21- 从 ...
- JavaScript算法(实例八)递归计算每个月的兔子总数【斐波那契数列】
古典问题:有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少? 思考这道题的时候,如果你简单的推算一下,会发现每个月的兔 ...
- matlab兔子繁殖问题,斐波那契数列在《疯狂动物城》兔子繁衍中的应用
摘 要: 计算思维的构建有助于帮助学生将实际问题转换为透明易懂的框架算法, 并借助计算机解决.以电影<疯狂动物城>中的兔子繁殖问题为例, 引出斐波那契数列, 引导学生将数学表达式转化 ...
- 神奇的兔子序列(斐波那契数列)
14天阅读挑战赛 神奇的兔子序列 假设第1个月有1对刚诞生的兔子,第2个月进入成熟期,第3个月开始生育兔子,而1对成熟的兔子每月会生1对兔子,兔子永不死去.那么,由1对初生兔子开始,12个月后会有多少 ...
- JavaScript初级玩法(3)—兔子问题(斐波那契数列)
问题 有人想知道一年内一对兔子可繁殖成多少对,便筑了一道围墙把一对兔子关在里面.已知一对兔子每一个月可以生一对小兔子,但是一对兔子要从出生后第三个月才开始生小兔子假如一年内没有发生死亡,则一对兔子一年 ...
- 【趣学算法】神奇的兔子序列(斐波那契数列)
14天阅读挑战赛 努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对于算 ...
- java递归方法编写兔子繁殖_2018-04-15 斐波那契数列(兔子繁殖数列)
费波那契数列(兔子繁殖数列) 兔子在出生两个月后,就有繁殖能力,一对成年而有繁殖力的兔子每个月能生出一对小兔子来.假设一年以后所有兔子都不死,那么一对小兔子一年以后可以繁殖多少对兔子? 我们来分析一下 ...
- Python程序模拟手工推算考虑兔子寿命的斐波那契数列
开学第一课:拜托,一定不要这样问Python问题 中国大学MOOC"Python程序设计基础"免费学习地址 推荐图书: <Python程序设计(第3版)>,(ISBN: ...
最新文章
- python动态导入检查是否存在_python动态导入模块、检查模块是否安装
- libklel 1.1.0 发布,表达式语言
- QT5更改应用程序图标
- xshell简单使用
- duplicate symbols for architecture arm64的问题结决方法
- html5 元宵节送祝福,元宵节送上真心祝福语
- SQL2008触发器
- Linux下ELF二进制文件加壳,pe/elf 文件加壳时的处理
- C++汽车4S店管理系统
- 《设计心理学 1 日常的设计》 唐纳德·A·诺曼 pdf下载
- 一款牛逼的Android端身份证合成工具
- 【转载】springboot集成SMS发送短信
- 组态王串口服务器虚拟串口,串口服务器通过modbus TCP连接组态王实例
- 网站开发进阶(六十六)CSS3 - 新单位vmin/vmax与旧单位ex/ch使用详解
- Apache Iceberg Research
- redis 哈希hash实例应用
- 新浪云sae springboot项目部署
- 适用vue的html前台页面打印插件
- 网易易盾web端H5接入
- 入职两年申请涨薪3K被拒,是我平时好脸给多了?转身立马裸辞走人...
热门文章
- 缓慢画点功能实现的两个方法
- showToast的使用
- 【微信小程序】微信小程序基础知识篇
- java平均分排序_编写java程序,输入10个成绩,计算最高分,最低分,平均分,并按从小到大排序,最后统计高于平均分的人有多少?...
- 高老师的架构设计_隽语集(AA_0151)
- 人体体态识别数据集、论文
- PDF文件如何编辑?这两种方法是我一直在用的
- 计算机搜索文件时找不到搜索按钮,win7搜索功能 为什么明明有那个文件却搜索不到呢?-win7搜索不到文件,win7搜索文件内容搜不出来...
- HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。
- python 安装失败 errorcode 2203_win10系统安装软件出现the error code is 2203错误怎么办...