导航:首页 > 源码编译 > 斐波那契数列算法

斐波那契数列算法

发布时间:2022-02-16 06:42:40

A. 斐波那契数列怎么算

它的通项公式是 Fn=1/根号5{[(1+根号5)/2]的n次方-[(1-根号5)/2]的n次方}(n属于正整数)
并不是所有的数列都可以求。
但是Fibanocci数列是可以求通项公式的。
a(n+2)=a(n+1)+an
如果能做到:
a(n+2)-ka(n+1)=q(a(n+1)-kan)就好办了。
这应该没问题的,待定系数求k,q
斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34……
这个数列从第三项开始,每一项都等于前两项之和。它的通项公式为:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
通项是两个等比数通项之差.
求和公式就是两个等比数列求和公式之差

B. 小于一百的斐波那契数的算法

即斐波那契数列,“斐波那契数列”的发明者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci,生于公元1170年,卒于1240年。籍贯大概是比萨)。他被人称作“比萨的列昂纳多”。1202年,他撰写了《珠算原理》(Liber Abaci)一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。
斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21……
这个数列从第三项开始,每一项都等于前两项之和。它的通项公式为:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}【√5表示根号5】
很有趣的是:这样一个完全是自然数的数列,通项公式居然是用无理数来表达的。

【该数列有很多奇妙的属性】
比如:随着数列项数的增加,前一项与后一项之比越逼近黄金分割0.6180339887……
还有一项性质,从第二项开始,每个奇数项的平方都比前后两项之积多1,每个偶数项的平方都比前后两项之积少1。
如果你看到有这样一个题目:某人把一个8*8的方格切成四块,拼成一个5*13的长方形,故作惊讶地问你:为什么64=65?其实就是利用了斐波那契数列的这个性质:5、8、13正是数列中相邻的三项,事实上前后两块的面积确实差1,只不过后面那个图中有一条细长的狭缝,一般人不容易注意到。
如果任意挑两个数为起始,比如5、-2.4,然后两项两项地相加下去,形成5、-2.4、2.6、0.2、2.8、3、5.8、8.8、14.6……等,你将发现随着数列的发展,前后两项之比也越来越逼近黄金分割,且某一项的平方与前后两项之积的差值也交替相差某个值。
斐波那契数列的第n项同时也代表了集合{1,2,...,n}中所有不包含相邻正整数的子集个数。

【斐波那契数列别名】
斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。
斐波那契数列
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子?
我们不妨拿新出生的一对小兔子分析一下:
第一个月小兔子没有繁殖能力,所以还是一对;
两个月后,生下一对小兔民数共有两对;
三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;
------
依次类推可以列出下表:
经过月数:0123456789101112
兔子对数:1123581321345589144233
表中数字1,1,2,3,5,8---构成了一个数列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。
这个数列是意大利中世纪数学家斐波那契在<算盘全书>中提出的,这个级数的通项公式,除了具有a(n+2)=an+a(n+1)/的性质外,还可以证明通项公式为:an=1/√[(1+√5/2) n-(1-√5/2) n](n=1,2,3.....)

【斐波那挈数列通项公式的推导】

斐波那契数列:1,1,2,3,5,8,13,21……
如果设F(n)为该数列的第n项(n∈N+)。那么这句话可以写成如下形式:
F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3)
显然这是一个线性递推数列。

通项公式的推导方法一:利用特征方程
线性递推数列的特征方程为:
X^2=X+1
解得
X1=(1+√5)/2, X2=(1-√5)/2.
则F(n)=C1*X1^n + C2*X2^n
∵F(1)=F(2)=1
∴C1*X1 + C2*X2
C1*X1^2 + C2*X2^2
解得C1=1/√5,C2=-1/√5
∴F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}【√5表示根号5】
通项公式的推导方法二:普通方法
设常数r,s
使得F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
则r+s=1, -rs=1
n≥3时,有
F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
F(n-1)-r*F(n-2)=s*[F(n-2)-r*F(n-3)]
F(n-2)-r*F(n-3)=s*[F(n-3)-r*F(n-4)]
……
F(3)-r*F(2)=s*[F(2)-r*F(1)]
将以上n-2个式子相乘,得:
F(n)-r*F(n-1)=[s^(n-2)]*[F(2)-r*F(1)]
∵s=1-r,F(1)=F(2)=1
上式可化简得:
F(n)=s^(n-1)+r*F(n-1)
那么:
F(n)=s^(n-1)+r*F(n-1)
= s^(n-1) + r*s^(n-2) + r^2*F(n-2)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) + r^3*F(n-3)
……
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)*F(1)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)
(这是一个以s^(n-1)为首项、以r^(n-1)为末项、r/s为公差的等比数列的各项的和)
=[s^(n-1)-r^(n-1)*r/s]/(1-r/s)
=(s^n - r^n)/(s-r)
r+s=1, -rs=1的一解为 s=(1+√5)/2, r=(1-√5)/2
则F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}

C. 什么是斐波那契数列

斐波那契数列数列从第3项开始,每一项都等于前两项之和。

例子:数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........

应用:

生活斐波那契

斐波那契数列中的斐波那契数会经常出现在我们的眼前——比如松果、凤梨、树叶的排列、某些花朵的花瓣数(典型的有向日葵花瓣),蜂巢,蜻蜓翅膀,超越数e(可以推出更多),黄金矩形、黄金分割、等角螺线,十二平均律等。

斐波那契数与植物花瓣3………………………

百合和蝴蝶花5……………………

蓝花耧斗菜、金凤花、飞燕草、毛茛花8………………………

翠雀花13………………………

金盏和玫瑰21……………………

紫宛34、55、89……………雏菊

斐波那契数还可以在植物的叶、枝、茎等排列中发现。例如,在树木的枝干上选一片叶子,记其为数0,然后依序点数叶子(假定没有折损),直到到达与那些叶子正对的位置,则其间的叶子数多半是斐波那契数。叶子从一个位置到达下一个正对的位置称为一个循回。

叶子在一个循回中旋转的圈数也是斐波那契数。在一个循回中叶子数与叶子旋转圈数的比称为叶序(源自希腊词,意即叶子的排列)比。多数的叶序比呈现为斐波那契数的比。

黄金分割

随着数列项数的增加,前一项与后一项之比越来越逼近黄金分割的数值0.6180339887..…

(3)斐波那契数列算法扩展阅读:

性质:

平方与前后项

从第二项开始,每个奇数项的平方都比前后两项之积少1,每个偶数项的平方都比前后两项之积多1。

如:第二项1的平方比它的前一项1和它的后一项2的积2少1,第三项2的平方比它的前一项1和它的后一项3的积3多1。

(注:奇数项和偶数项是指项数的奇偶,而并不是指数列的数字本身的奇偶,比如从数列第二项1开始数,第4项5是奇数,但它是偶数项,如果认为5是奇数项,那就误解题意,怎么都说不通)

证明经计算可得:[f(n)]^2-f(n-1)f(n+1)=(-1)^(n-1)

发明者:

斐波那契数列的发明者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci),生于公元1170年,卒于1250年,籍贯是比萨。他被人称作“比萨的列昂纳多”。1202年,他撰写了《算盘全书》(Liber Abacci)一书。

他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯等地研究数学。

D. 斐波那契数列算法

Private Function f(ByVal n As Integer) As Double'斐波那契的n项的值
Dim r As Double
If n = 0 Then
r = 0
End If
If n = 1 Then
r = 1
End If
If n > 1 Then
r = f(n - 1) + f(n - 2)
End If
f = r
End Function

E. 斐波那契数列递归算法是什么

斐波那契数列递归算法是斐波那契数列的一种算法,又称为黄金分割数列,其算法规律为F(n)=F(n-1)+F(n-2)。

由于是以兔子的繁殖为例子引入的,因此也叫“兔子数列”。它指的是这样一个数列:0、1、1、2、3、5、8、13……,从这组数可以很明显看出这样一个规律:从第三个数开始,后边一个数一定是在其之前两个数的和。

(5)斐波那契数列算法扩展阅读:

斐波那契数列递归的原理:

1、每一级的函数调用都有自己的变量。

2、每一级函数调用都会有一次返回。

3、递归函数中,位于递归调用前的语句和各级调用函数具有相同的执行顺序。

4、递归函数中,位于递归调用后的语句和各级调用函数具有相反的执行顺序。

5、虽然每一级递归都有自己的变量,但是函数代码并不会得到复制。

F. 斐波那契数列怎么计算

递归法:

F(1)=0,F(2)=1,F(n)=F(n-1)+F(n-2)(n≥3,n∈N)


公式法:

G. 斐波那契数列算法的源程序

代码如下。。。我测试过了。。。

public class Fibonacci {

/**
* 计算Fibonacci数列,使用递归
* @param n 计算第n个Fibonacci数列值
* @return 第n个Fibonacci数值
*/
public static int fibonacci(int n){
if(n<=1)
return n;
else
return fibonacci(n-1) + fibonacci(n-2);
}

public static void main(String[] args) {
for(int i = 0;i<=5;i++)
System.out.print(fibonacci(i)+",");
}

}

希望对你有帮助。。。。仍有问题可以HI我。。。

H. 2、什么是斐波那契数列,怎么计算连续10个斐波那契数的和

斐波那契数列是后一项=前面两项相加,即:
f(3)=f(1)+f(2)

I. 斐波那契数列,第二十个数的算法。(用循环语句)

java">//斐波那契数列
List<Integer>list=newArrayList<>();
inta=1,b=2,n=20;
list.add(a);
list.add(b);
//An=A(n-1)+A(n-2)
for(inti=0;i<20;i++){
list.add(list.get(i)+list.get(i+1));
}
//输出
System.out.println(list.get(n-1));

J. 斐波那契数列的算法,vb

Dim st As String = ""
Dim a(100)
a(1) = 0 : a(2) = 1
For i = 3 To 100
a(i) = a(i - 2) + a(i - 1)
Next i

For i = 1 To 10
st = st & a(i) & " "
If i Mod 10 = 0 Then st = st & vbCrLf
Next i
TextBox6.Text = st

Public Function f(ByVal n As Integer) As Integer
Dim res As Integer
If n = 1 Or n = 2 Then
res = 1
End If
If n = 3 Then
res = 2
End If
If n > 3 Then
res = f(n - 1) + f(n - 2)
End If
Return res
End Function

阅读全文

与斐波那契数列算法相关的资料

热点内容
纸质电话数据加密法 浏览:172
linux弹出光盘命令 浏览:258
java加密jar包防止反编译 浏览:397
redhatlinux安装mysql 浏览:691
怎么把word和ppt放在一个文件夹 浏览:139
pdf优化器 浏览:131
剪力墙柱钢筋搭接需要加密吗 浏览:873
萤石云加密视频怎么播放 浏览:983
winar如何压缩内存占小 浏览:727
哪里有大的解压软件 浏览:583
一个云服务器如何放多个网站 浏览:324
圆柱体重计算法 浏览:233
谷歌服务器解析地址 浏览:701
应届毕业生程序员实习期怎么过 浏览:707
板石楼梯计算法 浏览:436
swift开发pdf 浏览:293
ideajava编译版本 浏览:964
迈普交换机常用命令 浏览:180
删除创建的文件夹命令 浏览:184
linuxmysql连接拒绝连接 浏览:823