斐波那契数列

斐波那契数列

基础的定义及矩阵快速幂在这里就不提了,这里主要介绍一些斐波那契数列的优秀性质与应用。

性质:

性质一:\(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) \]

posted @ 2026-10-18 14:35  wlhao  阅读(5)  评论(0)    收藏  举报