编程产生斐波那契数列20项python(编写程序斐波那契数列)

http://www.itjxue.com  2023-03-04 11:58  来源:未知  点击次数: 

用Python输出斐波那契数列的前20项,要用递归和非递归两种方法?

?斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n=2,n∈N*)

用python求斐波数列的前20项

斐波拉契数列的通项公式:

第2n+1项是:

1/√5〔

(√5+1)2??1/2

+(√5-1)2??1/2〕

第2n项是:

1/√5〔

(√5+1)2?/2

-(√5-1)2?/2〕

(n=0,1,2,3……)

其实此数列的前20项还是用递推方式比较容易:

0,1,1,2,3,5,

8,13,21,34,55,89,144,233,

377,610,987,

1597,2584,4181。

Python 求斐波那契数列前20项和

定义:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列: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*)

方法一:用递归方法求出每一项

def?fib1(n):

????if?n?==?0:

????????return?0

????elif?n?==?1:

????????return?1

????else:

????????return?fib1(n?-?1)?+?fib1(n?-?2)

res?=?[]

for?i?in?range(21):

????res.append(fib1(i))

print?res

print?sum(res)

方法二:上面的方法,有很多重复计算,非常消耗性能,下面改进下:

known?=?{0:?0,?1:?1}

def?fib2(n):

????if?n?in?known:

????????return?known[n]

?

????res?=?fib2(n?-?1)?+?fib2(n?-?2)

????known[n]?=?res

????return?res

res?=?[]

for?i?in?range(21):

????res.append(fib2(i))

print?res

print?sum(res)

(责任编辑:IT教学网)

更多

推荐Dreamweaver教程文章