fibnacci数列递归实现

fibnacci数列介绍

斐波那契数列又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、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 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

斐波那契数列的递归表达式

f(1)=0,f(2)=1
f(n+1)=f(n)+f(n-1)

用python递归实现Fib(n)

  • 代码1
def fib(n):
    return 1 and n <= 2 or fib(n - 1) +fib(n - 2)
print('\n 最终结果为 %d'%(fib(100))) 

时间:极长无比,算n=20时十分钟没算出来。
递归方式运算量极其大,一分钟之内算不出来

  • 代码2
def countfib(n):
    a=1
    b=1
    c=1
    for i in range(n):
       if i<2:
            c=1
       else:
           c=a+b
           a=b
           b=c
 
    return c
 
print('\n 最终结果为 %d'%(countfib(200)))

这种方式很快便能得出答案

参考文献:

【1】python 入门之斐波那契数列递归表达式算法和非递归算法