斐波那契数列是一个非常神奇的数列:它有很多的性质。在后文中,我们用 f n f_n fn 表示第一项和第二项都为 1 1 1 的斐波那契数列, F n F_n Fn 表示第一项和第二项为任意正整数的斐波那契数列。
公式
先说一下递推公式:
F n = F n − 1 + f n − 2 F_n=F_{n-1}+f_{n-2} Fn=Fn−1+fn−2
我们再来说一下斐波那契的通项公式:
f n = ( 1 + 5 2 ) n − ( 1 − 5 2 ) n 5 f_n=\frac{(\frac{1+\sqrt{5}}{2})^n-(\frac{1-\sqrt{5}}{2})^n}{\sqrt{5}} fn=5(21+5)n−(21−5)n
由于编程语言一般有精度问题,所以我们一般不用这个公式,了解即可。
性质
只对于 F F F 的
卡西尼性质
F
n
−
1
F
n
+
1
−
(
F
n
)
2
=
(
−
1
)
n
F_{n-1}F_{n+1}-(F_n)^2=(-1)^n
Fn−1Fn+1−(Fn)2=(−1)n
F
n
+
k
=
F
k
F
n
+
1
+
F
k
−
1
F
n
F_{n+k}=F_kF_{n+1}+F_{k-1}F_n
Fn+k=FkFn+1+Fk−1Fn
小小地扩展一下
当我们取上面一条行之中的 k k k 为 n n n 时:
F
2
n
=
F
n
F
n
+
1
+
F
n
−
1
F
n
F_{2n}=F_nF_{n+1}+F_{n-1}F_n
F2n=FnFn+1+Fn−1Fn
等号右边提取一个
F
n
F_n
Fn 得到:
F 2 n = F n ( F n + 1 + F n − 1 ) F_{2n}=F_n(F_{n+1}+F_{n-1}) F2n=Fn(Fn+1+Fn−1)
由于 F n + 1 + F n − 1 F_{n+1}+F_{n-1} Fn+1+Fn−1 为整数,得到 F n ∣ F 2 n F_n|F_{2n} Fn∣F2n
如果 k k k 为 2 n 2n 2n 时
F
3
n
=
F
2
n
F
n
+
1
+
F
2
n
−
1
F
n
F_{3n}=F_{2n}F_{n+1}+F_{2n-1}F_n
F3n=F2nFn+1+F2n−1Fn
将
F
2
n
=
F
n
(
F
n
+
1
+
F
n
−
1
)
F_{2n}=F_n(F_{n+1}+F_{n-1})
F2n=Fn(Fn+1+Fn−1) 带入上述式子:
F 3 n = ( F n ( F n + 1 + F n − 1 ) ) F n + 1 + F 2 n − 1 F n F_{3n}=(F_n(F_{n+1}+F_{n-1}))F_{n+1}+F_{2n-1}F_n F3n=(Fn(Fn+1+Fn−1))Fn+1+F2n−1Fn
等号右边还是可以提出一个 F n F_n Fn。
所以 F n ∣ F 3 n F_n|F_3n Fn∣F3n。
所以对于每一个 k = p { p ≥ 1 } k=p\{p\ge1\} k=p{p≥1} 且 p p p 为整数,若 p − 1 p-1 p−1 成立,则 p p p 成立。而又 p = 1 p=1 p=1 成立,所以对于任意一个满足条件的 p p p, F n ∣ F n k F_n|F_{nk} Fn∣Fnk 成立。
上属性质还可逆,即:若 F a ∣ F b F_a|F_b Fa∣Fb,则 a ∣ b a|b a∣b。
GCD 性质
gcd ( F m , F n ) = F gcd ( m , n ) \gcd(F_m,F_n)=F_{\gcd(m, n)} gcd(Fm,Fn)=Fgcd(m,n)
其他的
另类通项公式
如果我们知道了 f f f 数列的任何一项,而且还知道 F 1 F_1 F1 和 F 2 F_2 F2,那么我们用 F 1 F_1 F1 和 F 2 F_2 F2 表示一下这个 F F F 数列的每一项:
F 1 = F 1 F_1=F_1 F1=F1
F 2 = F 2 F_2=F_2 F2=F2
F 3 = F 1 + F 2 F_3=F_1+F_2 F3=F1+F2
F 4 = F 2 + F 3 = F 1 + 2 F 2 F_4=F_2+F_3=F_1+2F_2 F4=F2+F3=F1+2F2
F 5 = 2 F 1 + 3 F 2 F_5=2F_1+3F_2 F5=2F1+3F2
F 6 = 3 F 1 + 5 F 2 F_6=3F_1+5F_2 F6=3F1+5F2
F 7 = 5 F 1 + 8 F 2 F_7=5F_1+8F_2 F7=5F1+8F2
F 8 = 8 F 1 + 13 F 2 F_8=8F_1+13F_2 F8=8F1+13F2
发现什么规律?
若:
F x = a x F 1 + b x F 2 F_x=a_xF_1+b_xF_2 Fx=axF1+bxF2
用递推公式表示一下 F x F_x Fx:
F x = F x − 1 + F x − 2 F_x=F_{x-1}+F_{x-2} Fx=Fx−1+Fx−2
用 F x = a x F 1 + b x F 2 F_x=a_xF_1+b_xF_2 Fx=axF1+bxF2 展开等号右边:
F x = a x − 1 F 1 + b x − 1 F 2 + a x − 2 F 1 + b x − 2 F 2 = ( a x − 1 + a x − 2 ) F 1 + ( b x − 1 + b x − 2 ) F 2 F_x=a_{x-1}F_1+b_{x-1}F_2+a_{x-2}F_1+b_{x-2}F_2=(a_{x-1}+a_{x-2})F_1+(b_{x-1}+b_{x-2})F_2 Fx=ax−1F1+bx−1F2+ax−2F1+bx−2F2=(ax−1+ax−2)F1+(bx−1+bx−2)F2
发现系数也是一个斐波那契数列,代换一下:
F x = f x − 2 F 1 + f x − 1 F 2 F_x=f_{x-2}F_1+f_{x-1}F_2 Fx=fx−2F1+fx−1F2
前提是 x ≥ 3 x\ge3 x≥3
前缀和
我们设 S x S_x Sx 为 ∑ i = 1 x F x \sum_{i=1}^{x}F_x ∑i=1xFx,那么还是用 F 1 F_1 F1 和 F 2 F_2 F2 表示 S S S 的任意一项:
S 1 = F 1 S_1=F_1 S1=F1
S 2 = F 1 + F 2 S_2=F_1+F_2 S2=F1+F2
S 3 = 2 F 1 + 2 F 2 S_3=2F_1+2F_2 S3=2F1+2F2
S 4 = 3 F 1 + 4 F 2 S_4=3F_1+4F_2 S4=3F1+4F2
S 5 = 5 F 1 + 7 F 2 S_5=5F_1+7F_2 S5=5F1+7F2
S 6 = 8 F 1 + 12 F 2 S_6=8F_1+12F_2 S6=8F1+12F2
S 7 = 13 F 1 + 20 F 2 S_7=13F_1+20F_2 S7=13F1+20F2
系数有点东西,从系数下手:
S x = f x F 1 + ( f x + 1 − 1 ) F 2 S_x=f_xF_1+(f_{x+1}-1)F_2 Sx=fxF1+(fx+1−1)F2
两个数列相加
我们假设有两个数列 F 1 F1 F1 和 F 2 F2 F2,设它们的长度都为 n n n,求和,设和为 F 3 F3 F3
F 3 i = F 1 i + F 2 i = F 1 i − 1 + F 1 i − 2 + F 2 i − 1 + F 2 i − 2 = F 3 i − 1 + F 3 i − 2 F3_i=F1_i+F2_i=F1_{i-1}+F1_{i-2}+F2_{i-1}+F2_{i-2}=F3_{i-1}+F3{i-2} F3i=F1i+F2i=F1i−1+F1i−2+F2i−1+F2i−2=F3i−1+F3i−2
所以斐波那契数列求和后求和部分还是满足斐波那契数列的性质。
增长趋势
斐波那契数列的增长速度是指数级的,后一项约为前一项的第 1.618 1.618 1.618 倍。对的,黄金分割比。
红色的是斐波那契数列,绿色的是 y = 1.61 8 x y=1.618^x y=1.618x,两者几乎重叠。
End
斐波那契数列是个神奇的东西,还有很多的性质。
此博客大部分内容整理于 oi-wiki。