斐波那契数列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斐波那契数列相关的知识,希望对你有一定的参考价值。
斐波那契数列1,1,2,3,5,8,13,21......从第三项开始事前两项的和,此数列的第2008项除以8的余数是多少
本人小学6年级 要算式
斐波那契数列指的是这样一个数列: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语言程序】
main()
long fib[40] = 1,1;
int i;
for(i=2;i<40;i++)
fib[i ] = fib[i-1]+fib[i-2];
for(i=0;i<40;i++)
printf("F%d==%d\n", i, fib);
return 0;
【Pascal语言程序】
var
fib: array[0..40]of longint;
i: integer;
begin
fib[0] := 1;
fib[1] := 1;
for i:=2 to 39 do
fib[i ] := fib[i-1] + fib[i-2];
for i:=0 to 39 do
write('F', i, '=', fib[i ]);
end.
【数列与矩阵】
对于斐波那契数列1,1,2,3,5,8,13…….有如下定义
F(n)=f(n-1)+f(n-2)
F(1)=1
F(2)=1
对于以下矩阵乘法
F(n+1) = 1 1 * F(n)
F(n) 1 0 F(n-1)
它的运算就是
F(n+1)=F(n)+F(n-1)
F(n)=F(n)
可见该矩阵的乘法完全符合斐波那契数列的定义
设1 为B,1 1为C
1 1 0
可以用迭代得到:
斐波那契数列的某一项F(n)=(BC^(n-2))1
这就是斐波那契数列的矩阵乘法定义.
另矩阵乘法的一个运算法则A¬^n(n为偶数)=A^(n/2)* A^(n/2).
因此可以用递归的方法求得答案.
时间效率:O(logn),比模拟法O(n)远远高效。
代码(PASCAL)
变量matrix是二阶方阵, matrix是矩阵的英文
program fibonacci;
type
matrix=array[1..2,1..2] of qword;
var
c,cc:matrix;
n:integer;
function multiply(x,y:matrix):matrix;
var
temp:matrix;
begin
temp[1,1]:=x[1,1]*y[1,1]+x[1,2]*y[2,1];
temp[1,2]:=x[1,1]*y[1,2]+x[1,2]*y[2,2];
temp[2,1]:=x[2,1]*y[1,1]+x[2,2]*y[2,1];
temp[2,2]:=x[2,1]*y[1,2]+x[2,2]*y[2,2];
exit(temp);
end;
function getcc(n:integer):matrix;
var
temp:matrix;
t:integer;
begin
if n=1 then exit(c);
t:=n div 2;
temp:=getcc(t);
temp:=multiply(temp,temp);
if odd(n) then exit(multiply(temp,c))
else exit(temp);
end;
procedure init;
begin
readln(n);
c[1,1]:=1;
c[1,2]:=1;
c[2,1]:=1;
c[2,2]:=0;
if n=1 then
begin
writeln(1);
halt;
end;
if n=2 then
begin
writeln(1);
halt;
end;
cc:=getcc(n-2);
end;
procedure work;
begin
writeln(cc[1,1]+cc[1,2]);
end;
begin
init;
work;
end.
【数列值的另一种求法】
F(n) = [ (( sqrt ( 5 ) + 1 ) / 2) ^ n ]
其中[ x ]表示取距离 x 最近的整数。
【数列的前若干项】
1 1
2 2
3 3
4 5
5 8
6 13
7 21
8 34
9 55
10 89
11 144
12 233
13 377
14 610
15 987
16 1597
17 2584
18 4181
19 6765
20 10946 参考技术A 解:∵斐波那契数列有一个性质:一个固定的正整数除所有的斐波那契数,所得余数组成的数列是有周期的。
∴先确定正整数8除斐波那契数的周期:
项数 斐波那契数 除以8的余数
1 1 1
2 1 1
3 2 2
4 3 3
5 5 5
6 8 0
7 13 5
8 21 5
9 34 2
10 55 7
11 89 1
12 144 0
13 233 1
14 377 1
15 610 2
16 987 3
17 1597 5
18 2584 0
19 4181 5
20 6765 5
21 10946 2
22 17711 7
23 28657 1
24 46368 0
25 75025 1
26 121393 1
27 196418 2
28 317811 3
29 514229 5
30 832040 0
31 1346269 5
32 2178309 5
33 3524578 2
34 5702887 7
35 9227465 1
36 14930352 0
37 24157817 1
38 39088169 1
39 63245986 2
40 102334155 3
可见其周期是12
∵2008÷12=167......4
∴斐波那契数列第2008项除以8的余数和第4项除以8的余数相同
∵斐波那契数列第4项除以8的余数是3 【见上表第4项的余数】
∴斐波那契数列第2008项除以8的余数就是3
【说明:2008除以12得到余数4,是为了确定第2008项和第4项在周期中的位置相同,与斐波那契数本身除以8的余数不是一回事。为了看清周期,这里多排了几个,实际计算时至多算2个周期就足够了,必要时看到新的周期开始就可以了。另外,如果给出的某个项数(相当于本题的2008)除以12,余数为0(即除尽),就看第12项除以8的余数,因为12除以12的余数也为0。】本回答被提问者采纳 参考技术B 89种。斐波那契数列有个很有意思的特点就是:前面两个数相加的和刚好是后面的一个数。 参考技术C 数列 :1,1,2,3,5,8,13,21,34,55,89,144,233,377
数列除以8的余数:1,1,2,3,5,0,5,5,2,7,1,0,| 1,1。。。
以12为周期,2008/12=167。。。4
余数为3 参考技术D 求通项
设常数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)=(√5)*[(1+√5)/2]^n
-
[(1-√5)/2]^n
求和
利用特征方程的办法(这个请自行参阅组合数学相关的书)。
设斐波那契数列的通项为An。
(事实上An
=
(p^n
-
q^n)/√5,其中p
=
(√5
-
1)/2,
q
=
(√5
+
1)/2。但这里不必解它)
然后记
Sn
=
A1
+
A2
+
...
+
An
由于
An
=
Sn
-
S(n-1)
=
A(n-1)
+
A(n-2)
=
S(n-1)
-
S(n-2)
+
S(n-2)
-
S(n-3)
=
S(n-1)
-
S(n-3)
其中初值为S1
=
1,
S2
=
2,
S3
=
4。
所以
Sn
-
2S(n-1)
+
S(n-3)
=
0
从而其特征方程是
x^3
-
2x^2
+
1
=
0
即
(x
-
1)(x^2
-
x
-
1)
=
0
不难解这个三次方程得
x1
=
1
x2
=
p
x3
=
q
(p,
q值同An中的p,
q)。
所以通解是
Sn
=
c1
*
x1^n
+
c2
*
x2^n
+
c3
*
x3^n
其中c1,c2,c3的值由S1,S2,S3的三个初值代入上式确定。我就不算了。
斐波那契数列有啥规律
参考技术A F(n)=F(n-1)+F(n-2) 参考技术B 斐波拉契数列的简介斐波拉契数列(又译作“斐波那契数列”或“斐波那切数列”)是一个非常美丽、和谐的数列,它的形状可以用排成螺旋状的一系列正方形来说明(如右词条图),起始的正方形(图中用灰色表示)的边长为1,在它左边的那个正方形的边长也是1 ,在这两个正方形的上方再放一个正方形,其边长为2,以后顺次加上边长为3、5、8、13、2l……等等的正方形。这些数字每一个都等于前面两个数之和,它们正好构成了斐波那契数列。“斐波那契数列”的发明者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci,生于公元1170年,卒于1240年。籍贯大概是比萨)。他被人称作“比萨的列昂纳多”。1202年,他撰写了《珠算原理》(Liber Abaci)一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。
斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34……
这个数列从第三项开始,每一项都等于前两项之和。它的通项公式为:(1/√5)*[(1+√5)/2]^n - [(1-√5)/2]^n (√5表示5的算术平方根) (19世纪法国数学家敏聂(Jacques Phillipe Marie Binet 1786-1856)
很有趣的是:这样一个完全是自然数的数列,通项公式居然是用无理数来表达的。
斐波拉契数列的出现
13世纪初,欧洲最好的数学家是斐波拉契;他写了一本叫做《算盘书》的著作,是当时欧洲最好的数学书。书中有许多有趣的数学题,其中最有趣的是下面这个题目:
“如果一对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月裏,又能开始生1对小兔子,假定在不发生死亡的情况下,由1对初生的兔子开始,1年后能繁殖成多少对兔子?”
斐波拉契把推算得到的头几个数摆成一串:1,1,2,3,5,8……
这串数里隐含着一个规律:从第3个数起,后面的每个数都是它前面那两个数的和。而根据这个规律,只要作一些简单的加法,就能推算出以后各个月兔子的数目了。
于是,按照这个规律推算出来的数,构成了数学史上一个有名的数列。大家都叫它“斐波拉契数列”,又称“兔子数列”。这个数列有许多奇特的的性质,例如,从第3个数起,每个数与它后面那个数的比值,都很接近于0.618,正好与大名鼎鼎的“黄金分割律”相吻合。人们还发现,连一些生物的生长规律,在某种假定下也可由这个数列来刻画呢。
斐氏本人对这个数列并没有再做进一步的探讨。直到十九世纪初才有人详加研究,1960年左右,许多数学家对斐波拉契数列和有关的现象非常感到兴趣,不但成立了斐氏学会,还创办了相关刊物,其后各种相关文章也像斐氏的兔子一样迅速地增加。
斐波拉契数列的来源及关系
斐波拉契(Fibonacci)数列来源于兔子问题,它有一个递推关系,
f(1)=1
f(2)=1
f(n)=f(n-1)+f(n-2),其中n>=2
f(n)即为斐波拉契数列。
斐波拉契数列的公式
它的通项公式为:[(1+√5)/2]^n - [(1-√5)/2]^n /√5 (注:√5表示根号5)
斐波拉契数列的某些性质
1),f(n)f(n)-f(n+1)f(n-1)=(-1)^n;
2), f(1)+f(2)+f(3)+……+f(n)=f(n+2)-1
3),arctan[1/f(2n+1)]=arctan[1/f(2n+2)]+arctan[1/f(2n+3)]
以上是关于斐波那契数列的主要内容,如果未能解决你的问题,请参考以下文章