首页 > 学院 > 开发设计 > 正文

菲波那切数列数列的3种实现

2019-11-08 18:51:30
字体:
来源:转载
供稿:网友

斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。

1,通过递归的方式实现,效率很低

In [25]: def fib(n):    ...:     if n == 0:    ...:         return 0    ...:     if n ==1:    ...:         return 1    ...:     else:    ...:         return fib(n-1) + fib(n-2)    ...:     In [26]: fib(5)Out[26]: 5In [27]: fib(10)Out[27]: 55

2,通过for 循环的方式实现

In [15]: def fib(n):    ...:     a,b = 0,1    ...:     for i in range(n):    ...:         a,b = b,a+b    ...:     return a

In [22]: def fib(n):    ...:     a,b = 0,1    ...:     lst = []    ...:     for i in range(n):    ...:         lst.append(a)    ...:         a,b = b,a+b    ...:     return lst

3,通过生成器的方式实现

In [7]: def fib(n):   ...:     a,b = 0,1   ...:     for i in range(n):   ...:         yield a   ...:         a,b = b,a+b

In [9]: for x in fib(10):   ...:     PRint(x)   ...:     0112358132134


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表