Python 之斐波那契数列的实现
1.斐波那契数列的概念
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波那契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波那契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
斐波那契数列指的是这样一个数列:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 ……这个数列从第 3 项开始,每一项都等于前两项之和。
试用 Python 代码输出斐波那契数列前 20 项。
2.实现方法
用 Python 代码输出斐波那契数列,需把握住数列的特点:从第 3 项开始,每一项都等于前两项之和因此我们可以使用递归、for 循环等方法实现。
3.解题方法
(1)递归
第 1 行: 定义函数 fib1,传入参数 n
第 2-4 行: 用 if...else 语句进行判断,由于该数列从第三项开始,每个数的值为其前两个数之和,所以当 n == 1 或 n == 2 时,返回值为 1,这也是递归的结束条件;否则返回值为前两个数的和,即 fib1(n-1) +fib1(n-2)
第 6 行: 用 for 语句遍历 1-20 的整数
第 7 行: 为参数 n 赋值为 i, 并用 end 将 print 输出到同一行并以空格结尾
(2)for 循环
第 1 行: 定义函数 fib2,传入参数 n
第 2 行: 为 a,b 分别赋值为 0 和 1
第 3 行: 用 for 循环遍历前 n 项的整数
第 4 行: 由于该数列从第三项开始,每个数的值为其前两个数之和,可写成 a, b = b, a + b。这个式子中,右边的表达式会在赋值变动之前执行,即先执行右边,如第一次循环得到 b-->1,a+b --> 0+1 然后再执行赋值 a,b =1,0+1,所以执行完这条后 a=1,b=1
第 5 行: 返回 a 的值
第 6 行: 用 for 语句遍历前 20 的整数
第 7 行: 为参数 n 赋值为 i, 并用 end 将 print 输出到同一行并以空格结尾
版权声明: 本文为 InfoQ 作者【向阳逐梦】的原创文章。
原文链接:【http://xie.infoq.cn/article/0a7710eeb6c6fbc6a9e315280】。文章转载请联系作者。
评论