用Python实现斐波那契数列

了解斐波那契数列的视频

斐波那契数列介绍

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果

兔子繁殖问题

根剧高德纳(Donald Ervin Knuth)的《计算机程序设计艺术》(The Art of Computer Programming),1150 年印度数学家 Gopala 和金月在研究箱子包装物件长宽刚好为 1 和 2 的可行方法数目时,首先描述这个数列。 在西方,最先研究这个数列列的人是比萨的李奥纳多(意大利人斐波那契 Leonardo Fibonacci),他描述兔子生長的数目時用上了这数列。
第一个月初有一对刚诞生的兔子;第二个月之后(第三个月初)他们可以生育,每月每对可生育的兔子会诞生下一对新兔子;兔子永不死去
假设计 n 月有可生育的兔子总共 a 对,n+1 月就总共有 b 对。在 n+2 月必定总共有 a+b 对: 因为在 n+2 月的时候,前一月(n+1 月)的 b 对兔子可以存留至第 n+2 月(在当月属于新诞生的兔子尚不能生育)。而新生育出的兔子對数等于所有在 n 月就已存在的 a 对

上面故事就是斐波那契数列的起源。斐波那契数列用数学方式表示就是:

a0 = 0                (n=0)
a1 = 1                (n=1)
a[n] = a[n-1] + a[n-2]  (n>=2)

下面是代码实现

#!/usr/bin/env Python
#coding=utf-8
a,b = 0,1
lst = [0,1]
for i in range(10):
        a,b = b,a+b #关键在这句
        lst.append(b)
print a
print lst

解析:a,b = b,a+b
计算机在赋值时 ,等号 右边会先进行计算,然后把 计算后的值覆盖原有的值
这种写法是Python独有的。
这种写法还可以实现变量交换,像这样:a,b = b,a

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值