Python 有趣的斐波那契数列和用PYTHON实现计算的四种算法

  • 欢迎访问WearBBS~,发帖前记得先看论坛坛规,喜欢本站欢迎加入官方QQ群
    本站维护需要一定资金,为保证用户体验,不准备添加广告。但请有条件的来赞助一下吧~
    论坛每天都会更新,详情请查看更新日志贴

墨雨丹青

用户
2020-05-04
10
5
斐波那契数列,又称黄金分割数列、因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,这个数列从第3项开始,每一项都等于前两项之和。有趣的是,这样一个完全是自然数的数列,通项公式却是用无理数来表达的。而且当项数 趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618。

比如:

1÷1=1

1÷2=0.5

2÷3=0.66666

3÷5=0.6

………………..

55÷89=0.617977

233÷377=0.618025

46368÷75025=0.6180339

如果我们想求第n项的值时,可以用PYTHON编程快速求得,下面分别用4种算法求得n项时的值。比如想求数列中第10项的值。

import numpy as np
n=10 #这里假设求第10个数字的值
#第一种算法

def fibo(n):
if n<3:
return 1
return fibo(n-1)+fibo(n-2)
print(fibo(n))
#第二种算法
f1,f2=0,1
for i in range(n):
fn=f1+f2
f1,f2=fn,f1
print(fn)
#第三种算法
print(int((np.mat('1. 1.;1. 0.')**(n-1))[0,0]))
#第四种算法,其式就是用的公式。
r=np.sqrt(5)
print(int((((1+r)/2)**n-((1-r)/2)**n)/r))
 

Eclipse

副站长
管理成员
版主
赞助商
VIP
2020-03-28
107
21
勋章
2
信用
5.00 星
  • 核心成员认证
  • 开发者认证
NB,支持大佬(虽然我不会py)