2019独角兽企业重金招聘Python工程师标准>>>

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

数学分析:兔子的规律为数列1,1,2,3,5,8,13,21....

可以使用数列归纳这个问题,

前两项为 a1=a2=1 ;后面的项规律为  an=an-1+an-2.

递归:

python里面也可以使用递归函数,所谓递归函数就是利用函数本身调用自身,然后一直不停地调用自身,达到合适的条件,然后返回计算后的值。

例如:#计算5的以内的加法

def add(j):

if j==0:

return 0

return j+add(j-1)

print(add(5))

#15  ,以上过程就是计算0+1+2+3+4+5

在这个过程中,add()函数本身调用了自身的函数return j+add(j-1),这样子一次又一次调用,最后直到 j==0,结束递归。上面的这个过程就叫做递归。

代码实现:

第一种解决方法,按照数学思维去设计算法:

第二种解决方法,斐波那契数列:

# _*_ coding:utf-8 _*_

def fab(max):

n, a, b = 0, 0, 1

while n < max:

print b , a, b = b, a + b

n = n + 1

fab(8)

斐波那契而数列升级版:

# _*_ coding:utf-8 _*_

def fab(max):

n, a, b = 0, 0, 1

while n < max:

yield b

a, b = b, a + b

n = n + 1

for i in fab(6):

print i

def fibo(n):
    if n<=1:
        return n
    else:
        return(fibo(n-1)+fibo(n-2))
print(fibo(8))

注意语句:

如果一个赋值语句中,要赋的值是一个表达式,那么表达式优先于赋值执行:
a=0
b=1
a, b = b, a+b 在赋值的时候,先执行右边,这时候b =1 a=0 那么 a, b = b, a+b 就是:a,b=1,0+1 赋值完的结果就是 :a=1,b=1

说简单点,就像c=3+4,那么是不是先要等右边表达式:3+4=7执行完,再把7赋值给c,这一样的道理

转载于:https://my.oschina.net/u/3754854/blog/1841474

python 100例(10)相关推荐

  1. 求知讲堂python+人工智能 99天完整版 学完可就业+某某教程Python 100例————作业(持续更新)

    个人答案仅供参考,不喜勿喷. 求知讲堂python+人工智能 99天完整版 学完可就业 1.day1 1. import random index=1 error=0 age=random.randi ...

  2. ChatGPT实战100例 - (10) 提前体验ChatGPT的多模态绘图功能

    文章目录 ChatGPT实战100例 - (10) 提前体验ChatGPT的多模态绘图功能 一.需求与思路 二.基本调教 三.开始秀 四. 总结 ChatGPT实战100例 - (10) 提前体验Ch ...

  3. Python 100 例 pdf 下载

    今天按照计划是要发送"施工计划"之流程控制这个专题,不过今天临时有事,没有完成.接下来,在保证高质量的情况下,我会尽快发送出来,朋友们再等一下. 之前发过一篇日积月累的 Pytho ...

  4. 【Python基础】Python 100 例带你入门

    文章来源于Python与算法社区,作者振哥 大家好,我是振哥.这是我总结的 Python 100 个样例,原创作品,请大家多多关照. 以下所有代码全都至少运行一遍,确保可复现.易于理解.逐步完成入门到 ...

  5. python练手经典100例-10 个最值得 Python 新人练手的有趣项目

    原标题:10 个最值得 Python 新人练手的有趣项目 作者 | Claire D. Costa 编译 | Wendy 有很多 Python 新手留言问:"Python 入门很久了,但项目 ...

  6. 肝!Python 100 例

    一.  Python 基础 62 例 1  十转二 将十进制转换为二进制: >>> bin(10) '0b1010' 2 十转八 十进制转换为八进制: >>> oc ...

  7. Python 100例(上)

    如果你已经把基础看完,可以尝试一下看看以下例子了,如果不会做也不要紧,你要尝试手动把所有的代码都敲一边.别嫌麻烦,因为都是从麻烦到简单的. 实例1: 题目:有1.2.3.4个数字,能组成多少个相互不同 ...

  8. python 100实例_[Python] Python 100例

    题目1:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. #程序源 ...

  9. python办公实例100例-Python 100例(上)

    如果你已经把基础看完,可以尝试一下看看以下例子了,如果不会做也不要紧,你要尝试手动把所有的代码都敲一边.别嫌麻烦,因为都是从麻烦到简单的. 实例1: 题目:有1.2.3.4个数字,能组成多少个相互不同 ...

最新文章

  1. LodRunner实现大负载测试的四部曲(配置系统参数、配置LR、修改脚本、设置组策略)...
  2. 【DBMS 数据库管理系统】数据仓库特征 ( 特征一 : 面向主题组织数据 | 特征二 : 数据集成 | 特征三 : 数据不可更新 | 特征四 : 随时间不断变化 )
  3. linux用file命令,Linux file命令的使用
  4. normalizr API
  5. 金融数据分析与挖掘实战练习2.5-2.9
  6. Spread for Windows Forms高级主题(6)---数据绑定管理
  7. autocad不能画图_最新AutoCAD软件+插件合集+视频讲解,高效实用,限时领
  8. 美通企业周刊 | 世界最长海底公路隧道在青海开工;乐高华南首家品牌旗舰店开业;洲际加速布局粤港澳大湾区...
  9. a链接下载文件时,会打开新页面然后下载
  10. 怎样使用BAT脚本实现自动按键盘的某个键
  11. 华南师范大学 计算机学院 赵,罗子颖 计算机学院
  12. 李沐动手学深度学习V2-基于注意力机制的seq2seq
  13. 错过“复联4”在所不惜,迅雷链技术沙龙北京站有哪些更精彩的地方?
  14. Latex 希腊字母对应表
  15. python归一化 增大差异_Python实现描述性统计
  16. 活动预告|CodeWisdom软件供应链系列学术报告:第5期(鲍凌峰 浙江大学)
  17. Hadoop配置datanode
  18. 怎么在线录制电脑内部声音
  19. 浩易南:少用信用卡,少逛淘宝,多用现金
  20. Ubuntu安装后需要做的事

热门文章

  1. 搭建Jupyter学习环境
  2. Android WebView访问SSL证书网页(onReceivedSslError)
  3. struts2上传图片的全过程
  4. Hibernate的使用梳理
  5. sap business one 笑谈
  6. 区块链之比特币的潜在激励
  7. Express结合Webpack的全栈自动刷新
  8. mysql 数据目录更改
  9. 前景检测算法_3(GMM)
  10. GNS3模拟VPC注意几点