2021年斐波那契数列

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include<functional>
#include<time.h>
usingnamespace std;
constdouble EPS = 1E-15;
structComplex{
double a, b;//num=a+bi
Complex& operator=(constComplex& c){
12)- FnFn+1-Fn+12-1]/2 =(Fn+32-Fn+1Fn+2-1)/2,因此上式成立.
5)Fn2=Fn-1Fn+1+(-1)n+1 证明:数学归纳法,n=2 时满足.已知前面的 n 都满足,那么
Fn2=Fn-12+Fn-22+2Fn-2Fn-1=Fn-12+Fn-3Fn-1+(-1)n-1+2Fn-
4)F1F2+F2F3+...+FnFn+1=(Fn+22-FnFn+1-1)/2 证明:数学归纳法,n=1 时满足.已知 F1F2+F2F3+...+FnFn+1 满足,那么
F1F2+F2F3+...+FnFn+1+Fn+1Fn+2=(Fn+22-FnFn+1-1)/2+Fn+
1Fn+2
=(Fn+22-FnFn+1+2Fn+1Fn+2-1)/2=[(Fn+22+2Fn+1Fn+2+Fn+
g(n)=pg(n-1)+rn-2T+q=p(pg(n-2)+rn-3T+q)+rn-2T+q
=pn-1g(1)+pn-2T+pn-3rT+…+rn-2T+q+pq+…+pn-2q 因此也就可以得到 f 的递推式了: 不 难 得 到 , t=2.38297576790624… , T=0.12876722129781…+0.10114779836709…i。 递推式中的 c,p,q,t,T 都是常数,但除了 c 以外都是复数,因 此计算上会比较困难。在附录中附上 C++的程序,附复数计算的 模板和使用递推式计算类斐波那契数列的程序。
这个方程会发现没有实数解,于是我们只能使用复数了:
p=-0.22815549365396…-0.32963360796702…i
q=0.29087615630927…+0.07807037249863…i
r=-0.22815549365396…+0.32963360796702…i 继续上面的递推式,则有 g(n)-pg(n-1)-q=rn-2(g(2)-pg(1)-q)。 记 T=g(2)-pg(1)-q,则:
令 a,b,c 满足 f(n)+af(n-1)+bf(n-2)=c(f(n-1)+af(n-2)+bf(n-3))
则得到 c-a=1,ac-b=1,bc=1,消元得 c3-c2-c-1=0,利用牛顿迭
代 可 以 计 算 出 c=1.83928675521416…… , 则
a=0.83928675521416……,b=0.54368901269208……
=q2(Fn-2-pFn-3)
*欧阳光明*创编
2021.03.07
*欧阳光明*创编
=…=qn-2(F2-pF1) 又∵Fn-pFn-1=q(Fn-1-pFn-2) ∴Fn-pFn-1=qFn-1-pqFn-2
2021.03.07
Fn-1+Fn-2-pFn-1-qFn-1+pqFn-2=0
(1-p-q)Fn-1+(1+pq)Fn-2=0 ∴p+q=1,pq=-1 是其中的一种方程组 ∴Fn-pFn-1= qn-2(F2-pF1)=qn-2(1-p)=qn-1
*欧阳光明*创编
2021.03.07
的位置上,则此时共有 f(n-2)种选择。由于 p 有(n-1)种值,
则总共有(n-1)f(n-2)种排列方法;
2. 否则,共有(n-1)f(n-1)种排列方法。
综上所述,f(n)=(n-1)(f(n-1)+f(n-2)),f(1)=0,f(2)=1。那这个数
列的通项公式是什么呢?直接对这个数列不好进行操作,可以转
方得 p2-p+0.25=1.25,(p-0.5)2=1.25,p=±√1.25+0.5。随意取出一组
解即可:
这就是著名的斐波那契数列通项公式。有了它,斐波那契数
列的一些性质也不难得出了。比如斐波那契数列相邻两项的比值
趋向于黄金分割比,即:
根据斐波那契数列通项公式,可以得到
因为 n 是趋向于正无限的,因此我们可以知道:
同时,我们也可以得到了函数 f 的通项公式为:
这就是一些关于错位排序的性质。
二、 类斐波那契数列的研究
我们知道斐波那契数列递推式为 f(n)=f(n-1)+f(n-2),那么假
如有更多项呢?
假设 f(n)=f(n-1)+f(n-2)+f(n-3),其中 f(1)=f(2)=f(3)=1.我们暂
时称这个数列为类斐波那契数列,那么它的通项公式又如何呢?
附录
利用通项公式计算类斐波那契数列的代码:
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
#include<string.h>
#include<vector>
#include<math.h>
#include<queue>
#include<set>
a = c.a;
*欧阳光明*创编
2021.03.07
*欧阳光明*创编
b = c.b; return *this;
} Complex(){ a = b = 0; } Complex(doublet1, doublet2 = 0){ a = t1; b = t2; } Complex operator+(constComplex& c) const { returnComplex(a + c.a, b + c.b); } Complex operator-(constComplex& c) const { returnComplex(a - c.a, b - c.b); } Complex operator*(constComplex& c) const { double ta = a * c.a - b * c.b; double tb = b * c.a + a * c.b; returnComplex(ta, tb); } Complex operator/(constComplex& c) const { Complex t = c;
*欧阳光明*创编
2021.03.07 2021.03.07
*欧阳光明*创编
t.b = -t.b;
2021.03.07
t = (*this) * t;
double div = c.a * c.a + c.b * c.b;
t.a /= div;
t.b /= div;
return t;
}
bool operator==(constComplex& c) const {
2Fn-1=Fn-1Fn+Fn-12+(-1)n-1 =Fn-1Fn+1+(-1)n+1,因此上式成立.
*欧阳光明*创编
2021.03.07
*欧阳光明*创编
6)Fn+m=Fm-1Fn+FmFn+1(n>m>1)
2021.03.07
证明:利用通项公式,设 α= ,β=1-α= 注意到 1/α+α=sqrt(5)=1/β+β,1/α+β=0=1/β+α,上式就变成了
的和等于后面一个数字。这样我们可以得到一个递推式,记斐波
那契数列的第 i 项为 Fi,则 Fi=Fi-1+Fi-2.
兔子繁殖问题指设有一对新生的兔子,从第三个月开始他们
每个月都生一对兔子,新生的兔子从第三个月开始又每个月生一
对兔子。按此规律,并假定兔子没有死亡,10 个月后共有多少个
兔子?
这道题目通过找规律发现答案就是斐波那契数列,第 n 个月
这就是上述公式的证明. 四、 斐波那契数列与自然
斐波那契数列中的斐波那契数会经常出现在我们的眼前
——比如松果、凤梨、树叶的排列、某些花朵的花瓣数(典型的 有向日葵花瓣),蜂巢,蜻蜓翅膀,超越数 e(可以推出更多), 黄金矩形、黄金分割、等角螺线,十二平均律等。
斐波那契数还可以在植物的叶、枝、茎等排列中发现。例如,
2)F1+F3+F5+...+F2n+1=F2n+2 证明:原式=F2+(F4-F2)+(F6-F4)+...+(F2n+2-F2n)=F2n+2
3)F12+F22+...+Fn2=FnFn+1
证明:利用数学归纳法,显然 n=1 时满足,下面证明若 n=k
时满足,n=k+1 时也满足.


F12+F22+...+Fn2=FnFn+1,F12+F22+...+Fn+12=FnFn+1+Fn+12=(F n+1+Fn)Fn+1=Fn+1Fn+2,因此 n+1 后仍然满足.上述公式成立.
化一下。设错位排列的概率函数为 g(n),其中 g(1)=0,g(2)=0.5。
在 f(n)的递推式两边同时除以 n!即可得到

两边同时乘 n 得到
ng(n)=(n-1)g(n-1)+g(n-2)
n(g(n)-g(n-1))=g(n-2)-g(n-1)
注意到 e-1 的泰勒展开式跟它好像有点像,是
因此有如下的等式:
*欧阳光明*创编
2021.03.07
*欧阳光明*创编
2021.03.07
所以 f(n)+af(n-1)+bf(n-2)=cn-3(1+a+b),记 t=1+a+b,两边同
时除以 cn 构造更多的常数项:
为了方便,我们记
,则:
令 p,q,r 满足 g(n)-pg(n-1)-q=r(g(n-1)-pg(n-2)-q),则得到:
三、 递推式和矩阵 如果对于每个线性递推式都要先计算它的通项公式才能够
快速地得到某一项,那这个方法太过于复杂了。于是我们可以使
用矩阵来加速递推。
比如斐波那契数列的递推式也可以写成:
*欧阳光明*创编
2021.03.07
*欧阳光明*创编
因此就有如下结果:
2021.03.07
其中矩阵的幂次方可以使用快速幂算法在 O(logn)的时间内 解决,因此我们就可以在 O(logn)的时间内计算出斐波那契数列 的第 n 项(排除高精度的时间),且精度要比虚数和小数精确的 多。
Fn=qn-1+pFn-1=qn-1+p(qn-2+p(qn-3+…))=qn-1+pqn-2+p2qn-
3+…+pn-1
不难看出,上式是一个以 p/q 为公比的等比数列。将它用求
和公式求和可以得到:
而上面出现了方程组 p+q=1,pq=-1,可以得到
p(1-p)=-1,p2-p-1=0,这样就得到了一个标准的一元二次方程,配
图为斐波那契弧线。
关于递推式的拓展研究
一、 错位排列问题
有 n 个数,求有多少种排列使这 n 个数都不在原来的位置上。
比如 n=2 时,有一种排列。
设 f(n)表示 n 个数的错位排列数量,分两种情况讨论:
1. 第 n 个数在第 p(p≠n)个数的位置上,第 p 个数在第 n 个数
*欧阳光明*创编
2021.03.07
兔子的数量是斐波那契数列的第 n 项。
三、 性质
如果要了解斐波那契数列的性质,必然要先知道它的通项公
式才能更简单的推导出一些定理。那么下面我们就通过初等代数
的待定系数法计算出通项公式。
令常数 p,q 满足 Fn-pFn-1=q(Fn-1-pFn-2)。则可得:
Fn-pFn-1=q(Fn-1-pFn-2)
*欧阳光明*创编
斐波那契数列
2021.03Biblioteka Baidu07
一、
欧阳光明(2021.03.07)
二、 简介
斐波那契数列(Fibonacci),又称黄金分割数列,由数学家
斐波那契最早以“兔子繁殖问题”引入,推动了数学的发展。故斐
波那契数列又称“兔子数列”。
斐波那契数列指这样的数列:1,1,2,3,5,8,13,……,前两个数
那么我们就可以把分子和分母的第二项同时省略掉,即
这就是斐波那契数列的魅力之一——它和黄金分割比有密
切的关系。下面将给出斐波那契数列的几个性质及其证明。
*欧阳光明*创编
2021.03.07
*欧阳光明*创编
1)F1+F2+F3+...+Fn=Fn+2-1
2021.03.07
证明:原式=(F3-F2)+(F4-F3)+...+(Fn+2-Fn+1)=Fn+2-1.
在树木的枝干上选一片叶子,记其为数 0,然后依序点数叶子(假
定没有折损),直到到达与那些叶子正对的位置,则其间的叶子
数多半是斐波那契数。叶子从一个位置到达下一个正对的位置称
为一个循回。叶子在一个循回中旋转的圈数也是斐波那契数。在
一个循回中叶子数与叶子旋转圈数的比称为叶序(源自希腊词,
意即叶子的排列)比。多数的叶序比呈现为斐波那契数的比。
相关文档
最新文档