斐波那契数列
斐波那契数列
基础的定义及矩阵快速幂在这里就不提了,这里主要介绍一些斐波那契数列的优秀性质与应用。
性质:
性质一:\(f_0=0,f_1=1\) 时,\(\gcd(f_n,f_m)=f_{\gcd(n,m)}\) 。
证明:
-
关键恒等式:
\[F_{r+s}=F_{r-1}F_{s}+F_rF_{s+1}\quad (r\ge 1,s>0) \]这个由斐波那契数列的加法公式归纳得到:
-
当 \(s=0\) 时:
\[F_{r+0}=F_r \]此时式子成立。
-
当 \(s=1\) 时:
\[F_{r+1}=F_r+F_{r-1} \]此时式子成立。
-
假设 \(s\) 和 \(s-1\) 都成立,即:
\[F_{r+s}=F_{r-1}F_{s}+F_rF_{s+1} \]\[F_{r+s-1}=F_{r-1}F_{s-1}+F_rF_{s} \]要证 \(s+1\) 的情形:
\[\begin{aligned} F_{r+s+1} &= F_{r+s} + F_{r+s-1} \\\\ &= (F_{r-1}F_s + F_rF_{s+1}) + (F_{r-1}F_{s-1} + F_rF_s) \\\\ &= F_{r-1}(F_s + F_{s-1}) + F_r(F_{s+1} + F_s) \\\\ &= F_{r-1}F_{s+1} + F_rF_{s+2}. \end{aligned} \]所以归纳成立。
-
-
相邻两项互质:
有:
\[\gcd(F_n,F_{n-1})=1 \]因为:
\[\gcd(F_n, F_{n-1}) = \gcd(F_{n-1} + F_{n-2}, F_{n-1}) = \gcd(F_{n-2}, F_{n-1}), \]不断递推,最终得到
\[\gcd(F_n, F_{n-1}) = \gcd(F_1, F_0) = \gcd(1, 0) = 1. \]于是由 \(\gcd(F_n, F_{n-1}) = 1\),可得
\[\gcd(F_n, F_{n-1}F_{m-n}) = \gcd(F_n, F_{m-n}). \]所以当 \(m > n\) 时,根据上文所述的性质:
\[\begin{aligned} \gcd(F_n, F_m) &= \gcd\left(F_n, {\color{red}F_{n-1}F_{m-n} + F_nF_{m-n+1}}\right) \\\\ &= \gcd\left(F_n, {\color{red}F_{n-1}F_{m-n}}\right) \\\\ &= \gcd(F_n, F_{m-n}) \end{aligned} \]同理,若 \(n > m\),交换位置也有类似结论。
-
对下标作欧几里得算法:
设
\[d=\gcd(n,m) \]对 \(n,m\) 作欧几里得算法:
\[m=qn+r,\quad 0\le r< n \]反复使用上面的结论:
\[\gcd(F_n,F_m)=\gcd(F_n,F_{m-qn})=\gcd(F_n,F_r) \]继续对下标 \(n,r\) 作同样的操作,直到最后一个非零余数,也就是
\[d = \gcd(n, m). \]于是
\[\gcd(F_n, F_m) = \gcd(F_d, F_0). \]而 \(F_0 = 0\),所以
\[\gcd(F_d, F_0) = \gcd(F_d, 0) = F_d. \]因此
\[\bbox[5px, border:1px solid black]{\gcd(F_n, F_m) = F_{\gcd(n,m)}.} \]
性质二:模 \(p\) 意义下的循环节长度 \(≤ 6p\)
证明比较复杂,这里略。
反正实际使用时知道这个性质就行了。
其他:
1. 卡西尼恒等式
\[F_{n+1}F_{n-1} - F_n^2 = (-1)^n
\]
2. 连续项的平方和
\[F_1^2 + F_2^2 + \cdots + F_n^2 = F_nF_{n+1}
\]
3. 前 \(n\) 项和
\[F_1 + F_2 + \cdots + F_n = F_{n+2} - 1
\]
4. 泽肯多夫定理(Zeckendorf's theorem)
任何一个正整数,都可以唯一地表示为若干个互不相邻的斐波那契数之和。
应用/技巧:
如何根据斐波那契数列的首两项算出中间某项?
把首两项 \((a,b)\) 看成是 \((a,0)\) 和 \((0,b)\) 。
然后矩阵快速求解。
或者也可以用广义斐波那契:(两者本质一样)
通项可以立刻写出来:
\[G_n = a \cdot F_{n-2} + b \cdot F_{n-1} \quad (n \ge 3)
\]

浙公网安备 33010602011771号