斐波那契专题

  • 斐波那契序列的定义
  • 斐波那契序列的基本性质
  • 卢卡斯数
  • 卢卡斯数的基本性质
  • 正整数的泽肯朵夫(Zeckendorf)表示
  • 其他斐波那契的性质
  • 常系数的二次线性齐次递归关系
  • 斐波那契进制/斐波那契编码
    • 一些模板
    • 一些应用题
    • 课后练习题(难?)
    • 下期预告(???)

提一嘴
斐波那契数的氺是真的深_(;3/<)_
貌似因为Latex原因那个根号显示不出来?(编辑界面是有的)
在α与β\alpha 与 \betaα与β 的地方,自动脑补 (1+根号5)/2 和(1-根号5)/2

斐波那契序列的定义

  • 斐波那契序列的递归定义
    fn={1,n=1,2fn−1+fn−2n≥3f_n=\begin{cases} 1,& n=1,2\\ f_{n-1}+f_{n-2}& n\ge3 \end{cases} fn​={1,fn−1​+fn−2​​n=1,2n≥3​

  • 斐波那契的广义定义

fn={0n=01n=1fn−1+fn−2n≥3fn+2−fn+1n≤−1f_n=\begin{cases} 0&n=0\\ 1&n=1\\ f_{n-1}+f_{n-2}&n\ge3\\ f_{n+2}-f_{n+1}&n\le-1 \end{cases} fn​=⎩⎪⎪⎪⎨⎪⎪⎪⎧​01fn−1​+fn−2​fn+2​−fn+1​​n=0n=1n≥3n≤−1​

  • 斐波那契的广义定义的前几项序列:
x -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6
f(x) -8 5 -3 2 -1 1 0 1 1 2 3 5 8

[负项看着很有规律?规律在后面!]


斐波那契序列的基本性质

  • 性质 I\mathrm{I}I :前n项和恒等式(4/10)

    • ∑nk=1fk=fn+2−1\color{red}\underset{k=1}{\overset{n}{\sum}}f_k=f_{n+2}-1k=1∑n​​fk​=fn+2​−1
    • 证明:叠进法: ∑nk=1fk=∑nk=1(fk+2−fk+1)=fn+2−f2=fn+2−1\underset{k=1}{\overset{n}{\sum}}f_k=\underset{k=1}{\overset{n}{\sum}}(f_{k+2}-f_{k+1})=f_{n+2}-f_2=f_{n+2}-1k=1∑n​​fk​=k=1∑n​​(fk+2​−fk+1​)=fn+2​−f2​=fn+2​−1
    • 用途:可以 O(lg⁡N)O(\lg N)O(lgN) 求前 NNN 项和
  • 性质 II\mathrm{II}II :前奇项和 (2/10)

    • ∑2nk=1[kmod2=1]×fk=f2n\color{red}\underset{k=1}{\overset{2n}{\sum}}\Big[\;k\bmod2\;=1\Big]\times f_k=f_{2n}k=1∑2n​​[kmod2=1]×fk​=f2n​

    • 证明:

      f2n=f2n−1+f2n−2=f2n−1+f2n−3+f2n−4⋮=f2n−1+f2n−3+⋯+f3+f1=∑2nk=1[kmod2=1]×fk\begin{aligned}f_{2n}&=f_{2n-1}+f_{2n-2}\\&=f_{2n-1}+f_{2n-3}+f_{2n-4}\\&\;\;\vdots\\&=f_{2n-1}+f_{2n-3}+\cdots+f_3+f_1\\&=\underset{k=1}{\overset{2n}{\sum}}\Big[\;k\bmod2\;=1\Big]\times f_k\end{aligned}f2n​​=f2n−1​+f2n−2​=f2n−1​+f2n−3​+f2n−4​⋮=f2n−1​+f2n−3​+⋯+f3​+f1​=k=1∑2n​​[kmod2=1]×fk​​

    • 用途:可以 O(lg⁡N)O(\lg N)O(lgN) 求前奇项和

  • 性质 III\mathrm{III}III :前偶项和 (2/10)

    • ∑2nk=1[kmod2=0]×fk=f2n+1−1\color{red}\underset{k=1}{\overset{2n}{\sum}}\Big[\;k\bmod2\;=0\Big]\times f_k=f_{2n+1}-1k=1∑2n​​[kmod2=0]×fk​=f2n+1​−1

    • 证明:前 2n2n2n 全项 - 前 2n2n2n 奇项即可。

      ∑2nk=1[kmod2=0]×fk=∑2nk=1fk−∑2nk=1[kmod2=0]×fk=f2n+2−1−f2n=f2n+1−1\underset{k=1}{\overset{2n}{\sum}}\Big[\;k\bmod2\;=0\Big]\times f_k=\underset{k=1}{\overset{2n}{\sum}}f_k-\underset{k=1}{\overset{2n}{\sum}}\Big[\;k\bmod2\;=0\Big]\times f_k=f_{2n+2}-1-f_{2n}=f_{2n+1}-1k=1∑2n​​[kmod2=0]×fk​=k=1∑2n​​fk​−k=1∑2n​​[kmod2=0]×fk​=f2n+2​−1−f2n​=f2n+1​−1

    • 用途:可以 O(lg⁡N)O(\lg N)O(lgN) 求前偶项和

  • 性质 IV\mathrm{IV}IV :前n项平方和 = 邻项积 (4/10)

    • ∑nk=1fk2=fn×fn+1\color{red}\underset{k=1}{\overset{n}{\sum}}f_k^2=f_n\times f_{n+1}k=1∑n​​fk2​=fn​×fn+1​

    • 证明:数学归纳证明:

      ∑n+1k=1fk2=fn+fn+1+fn+12=fn+1(fn+fn+1)=fn+1×fn+2\begin{aligned}\underset{k=1}{\overset{n+1}{\sum}}f_k^2&=f_n+f_{n+1}+f_{n+1}^2\\&=f_{n+1}(f_n+f_{n+1})\\&=f_{n+1}\times f_{n+2}\end{aligned}k=1∑n+1​​fk2​​=fn​+fn+1​+fn+12​=fn+1​(fn​+fn+1​)=fn+1​×fn+2​​

    • 用途:可以 O(lg⁡N)O(\lg N)O(lgN) 求前 nnn 项平方和

  • 性质 V\mathrm{V}V :邻项积的和 (4/10)

    • f1f2+f2f3+⋯+f2n−1f2n=f2n2\color{red}f_1f_2+f_2f_3+\cdots+f_{2n-1}f_{2n}=f_{2n}^2f1​f2​+f2​f3​+⋯+f2n−1​f2n​=f2n2​

    • 证明:数学归纳法证明:

      Sn+1=f1f2+f2f3+⋯+f2n−1f2n+f2nf2n+1+f2n+1f2n+2=f2n2+f2nf2n+1+f2n+1f2n+2=f2nf2n+2+f2n+1f2n+2=f2n+22\begin{aligned}S_{n+1}&=f_1f_2+f_2f_3+\cdots+f_{2n-1}f_{2n}+f_{2n}f_{2n+1}+f_{2n+1}f_{2n+2}\\&=f_{2n}^2+f_{2n}f_{2n+1}+f_{2n+1}f_{2n+2}\\&=f_{2n}f_{2n+2}+f_{2n+1}f_{2n+2}\\&=f_{2n+2}^2\end{aligned}Sn+1​​=f1​f2​+f2​f3​+⋯+f2n−1​f2n​+f2n​f2n+1​+f2n+1​f2n+2​=f2n2​+f2n​f2n+1​+f2n+1​f2n+2​=f2n​f2n+2​+f2n+1​f2n+2​=f2n+22​​

    • 用途:可以 O(lg⁡N)O(\lg N)O(lgN) 求前 nnn 项邻项积的和

  • 性质 VI\mathrm{VI}VI :前n项系数为幂的和(n≥3n\ge3n≥3) (1.5/10)

    • fn+fn−1+fn−2+2fn−3+4fn−4+8fn−5+⋯+2n−3=2n−1f_n+f_{n-1}+f_{n-2}+2f_{n-3}+4f_{n-4}+8f_{n-5}+\cdots+2^{n-3}=2^{n-1}fn​+fn−1​+fn−2​+2fn−3​+4fn−4​+8fn−5​+⋯+2n−3=2n−1

    • 证明:第二数归证明:

      Sn+1=fn+1+fn+fn−1+2fn−2+⋯+2n−2‾=2n−1+fn+1+fn−2+2fn−3+⋯+2n−3=2n−1+fn+fn−1+fn−2+2fn−3+⋯+2n−3‾=2n−1+2n−1=2n\begin{aligned}S_{n+1}&=f_{n+1}+\underline{f_n+f_{n-1}+2f_{n-2}+\cdots+2^{n-2}}\\&=2^{n-1}+f_{n+1}+f_{n-2}+2f_{n-3}+\cdots+2^{n-3}\\&=2^{n-1}+\underline{f_n+f_{n-1}+f_{n-2}+2f_{n-3}+\cdots+2^{n-3}}\\&=2^{n-1}+2^{n-1}\\&=2^n\end{aligned}Sn+1​​=fn+1​+fn​+fn−1​+2fn−2​+⋯+2n−2​=2n−1+fn+1​+fn−2​+2fn−3​+⋯+2n−3=2n−1+fn​+fn−1​+fn−2​+2fn−3​+⋯+2n−3​=2n−1+2n−1=2n​

    • 用途:可以 O(lg⁡N)O(\lg N)O(lgN) 求前这么一个表达式

  • 性质 VII\mathrm{VII}VII :基本转换 (2/10)

    • fm+n=fmfn+1+fnfm−1\color{red}f_{m+n}=f_mf_{n+1}+f_nf_{m-1}fm+n​=fm​fn+1​+fn​fm−1​

    • 证明:

  • 性质 VIII\mathrm{VIII}VIII :显式公式 (5/10)

    • fn=1根号5(αn−βn)\color{red}f_n=\frac{1}{根号5}\Big(\alpha^n-\beta^n\Big)fn​=根号51​(αn−βn)
    • 其中 α=1+根号52,β=1−根号52\alpha=\frac{1+根号5}{2},\beta=\frac{1-根号5}{2}α=21+根号5​,β=21−根号5​
    • 证明:在后方处。
  • 其他计算时需要掌握的基本恒等式:

    • 1.4.5:f2n=fn2+2fn−1fnf_{2n}=f_n^2+2f_{n-1}f_nf2n​=fn2​+2fn−1​fn​
    • 1.4.6:fn−2+fn+2=3fnf_{n-2}+f_{n+2}=3f_nfn−2​+fn+2​=3fn​ 易得
    • 1.4.10:f2n+1=fn+12+fn2f_{2n+1}=f_{n+1}^2+f_n^2f2n+1​=fn+12​+fn2​ 在性质 XVIII\mathrm{XVIII}XVIII 处证得
    • 1.4.11:f2n=fn+12−fn−12f_{2n}=f_{n+1}^2-f_{n-1}^2f2n​=fn+12​−fn−12​在性质 XVIII\mathrm{XVIII}XVIII 处证得
    • 1.4.14:fn+1fn−1−fn2=(−1)nn≥2f_{n+1}f_{n-1}-f_n^2=(-1)^n\qquad n\ge2fn+1​fn−1​−fn2​=(−1)nn≥2
    • 1.4.15:fn+1fn−fn−1fn−2=f2n−1f_{n+1}f_n-f_{n-1}f_{n-2}=f_{2n-1}fn+1​fn​−fn−1​fn−2​=f2n−1​

卢卡斯数

  • 卢卡斯数的递归定义:

Ln={1n=13n=2Ln−1+Ln−2n≥3L_n=\begin{cases} 1& n=1\\ 3& n=2\\ L_{n-1}+L_{n-2}&n\ge3 \end{cases} Ln​=⎩⎪⎨⎪⎧​13Ln−1​+Ln−2​​n=1n=2n≥3​

  • 卢卡斯的前几项序列:
x 1 2 3 4 5 6 7 8 9 10 11 12
L(x) 1 3 4 7 11 18 29 47 76 123 199 322

卢卡斯数的基本性质

  • 性质 I\mathrm{I}I : 前 nnn 项和 (3/10)

    • ∑nk=1Lk=Ln+2−3\color{red}\underset{k=1}{\overset{n}{\sum}}L_k=L_{n+2}-3k=1∑n​​Lk​=Ln+2​−3
  • 性质 II\mathrm{II}II : 前奇项和 (3/10)
    • ∑2nk=1[kmod2=1]×Lk=L2n−2\color{red}\underset{k=1}{\overset{2n}{\sum}}\Big[k\bmod2=1\Big]\times L_k=L_{2n}-2k=1∑2n​​[kmod2=1]×Lk​=L2n​−2
  • 性质 III\mathrm{III}III : 前偶项和 (3/10)
    • ∑2nk=1[kmod2=0]×Lk=L2n+1−1\color{red}\underset{k=1}{\overset{2n}{\sum}}\Big[k\bmod2=0\Big]\times L_k=L_{2n+1}-1k=1∑2n​​[kmod2=0]×Lk​=L2n+1​−1
  • 性质 IV\mathrm{IV}IV : 前 nnn 项平方和 (3/10)
    • ∑nk=1Lk2=LnLn+1−2\color{red}\underset{k=1}{\overset{n}{\sum}}L_k^2=L_nL_{n+1}-2k=1∑n​​Lk2​=Ln​Ln+1​−2
  • 性质 V\mathrm{V}V : 卢卡斯数与斐波那契数的转换 (5/10)
    • Ln=fn+1+fn−1\color{red}L_n=f_{n+1}+f_{n-1}Ln​=fn+1​+fn−1​
  • 性质 VI\mathrm{VI}VI : 卢卡斯数与斐波那契数的关系 (2/10)
    • 1.4.25 : f2n=fnLnf_{2n}=f_nL_nf2n​=fn​Ln​
    • 1.4.26 : 5fn+1=Ln+Ln+25f_{n+1}=L_n+L_{n+2}5fn+1​=Ln​+Ln+2​
    • 1.4.27 : Lm+n=fm+1Ln+fmLn−1L_{m+n}=f_{m+1}L_n+f_mL_{n-1}Lm+n​=fm+1​Ln​+fm​Ln−1​
  • 性质 VII\mathrm{VII}VII : 显式公式 (5/10)
    • Ln=αn+βn\color{red}L_n=\alpha^n+\beta^nLn​=αn+βn
    • 其中 α=1+根号52,β=1−根号52\alpha=\frac{1+根号5}{2},\beta=\frac{1-根号5}{2}α=21+根号5​,β=21−根号5​

正整数的泽肯朵夫(Zeckendorf)表示

  • 定义:正整数的泽肯朵夫表示是吧整数写成不同的斐波那契数的和的唯一表示。

    ​ 其中这些斐波那契数中没有任何两个是斐波那契序列的连续项

    ​ 并且不使用 f1=1f_1=1f1​=1这项。(但可以使用f2=1f_2=1f2​=1这项)

  • 例子:50=33+12+585=54+21+8+2110=89+21200=143+54+350=33+12+5\\85=54+21+8+2\\110=89+21\\200=143+54+350=33+12+585=54+21+8+2110=89+21200=143+54+3

  • 性质:每个正整数都有唯一的泽肯朵夫表示。

  • 证明(百度百科大法,太长啦!):


其他斐波那契的性质

  • 性质 IX\mathrm{IX}IX :增长速率与函数趋势 (2/10)

    • fn≤αn−1f_n\le\alpha^{n-1}fn​≤αn−1
    • 对于 n≥2n\ge2n≥2 的正整数成立
    • 其中 α=1+根号52\alpha=\frac{1+根号5}{2}α=21+根号5​
  • 性质 X\mathrm{X}X :组合数的和 (2/10)

    • (n0)+(n−11)+(n−22)+⋯+(1n−1)=fn+1\begin{pmatrix}n\\0\end{pmatrix}+\begin{pmatrix}n-1\\1\end{pmatrix}+\begin{pmatrix}n-2\\2\end{pmatrix}+\cdots+\begin{pmatrix}1\\n-1\end{pmatrix}=f_{n+1}(n0​)+(n−11​)+(n−22​)+⋯+(1n−1​)=fn+1​

    • 证明:运用第二数学归纳与组合数的性质来做:

      (ab)+(ab+1)=(a+1b+1)\begin{pmatrix}a\\b\end{pmatrix}+\begin{pmatrix}a\\b+1\end{pmatrix}=\begin{pmatrix}a+1\\b+1\end{pmatrix}(ab​)+(ab+1​)=(a+1b+1​)

  • 性质 XI\mathrm{XI}XI :组合数乘斐波那契的和 (4/10)

    • ∑nk=1(nj)fk=f2n\color{red}\underset{k=1}{\overset{n}{\sum}}\begin{pmatrix}n\\j\end{pmatrix}f_k=f_{2n}k=1∑n​​(nj​)fk​=f2n​
    • 证明:

∵α2=α+1,β2=β+1∴f2n=α2n−β2n根号5=1根号5((α+1)n−(β+1)n)=1根号5(∑nk=0(nk)αk−∑nk=0(nk)βk)=1根号5∑nk=0(nk)(αk−βk)=∑nk=1(nj)fk□\begin{aligned} &\because\alpha^2=\alpha+1,\;\beta^2=\beta+1\\ \therefore f_{2n}&=\frac{\alpha^{2n}-\beta^{2n}}{根号5}\\ &=\frac{1}{根号5}\Bigg(\Big(\alpha+1\Big)^n-\Big(\beta+1\Big)^n\Bigg)\\ &=\frac{1}{根号5}\Bigg(\underset{k=0}{\overset{n}{\sum}}\begin{pmatrix}n\\k\end{pmatrix}\alpha^k-\underset{k=0}{\overset{n}{\sum}}\begin{pmatrix}n\\k\end{pmatrix}\beta^k\Bigg)\\ &=\frac{1}{根号5}\underset{k=0}{\overset{n}{\sum}}\begin{pmatrix}n\\k\end{pmatrix}(\alpha^k-\beta^k)\\ &=\underset{k=1}{\overset{n}{\sum}}\begin{pmatrix}n\\j\end{pmatrix}f_k\qquad\Box \end{aligned} ∴f2n​​∵α2=α+1,β2=β+1=根号5α2n−β2n​=根号51​((α+1)n−(β+1)n)=根号51​(k=0∑n​​(nk​)αk−k=0∑n​​(nk​)βk)=根号51​k=0∑n​​(nk​)(αk−βk)=k=1∑n​​(nj​)fk​□​

  • 性质 XII\mathrm{XII}XII :矩阵快速幂与斐波那契 (7/10)

    • 设 F=[1110]F=\begin{bmatrix}1&1\\1&0\end{bmatrix}F=[11​10​]
    • 则当 n∈Z+n\in \mathbb{Z}^+n∈Z+ 时,Fn=[fn+1fnfnfn−1]\color{red}F^n=\begin{bmatrix}f_{n+1}&f_n\\f_n&f_{n-1}\end{bmatrix}Fn=[fn+1​fn​​fn​fn−1​​]
    • 证明:第二数归即可得证。
    • 用途:用这个才可 O(Nlg⁡N)O(N\lg N)O(NlgN) 求得fnf_nfn​
  • 性质 XIII\mathrm{XIII}XIII :广义斐波那契数与斐波那契 (8/10)

    • 广义斐波那契数定义:
    • gn={an=1bn=2gn−1+gn−2n≥3g_n=\begin{cases}a&n=1\\b&n=2\\g_{n-1}+g_{n-2}&n\ge3\end{cases}gn​=⎩⎪⎨⎪⎧​abgn−1​+gn−2​​n=1n=2n≥3​
    • 显式公式: gn=afn−2+bfn−1n≥3\color{red}g_n=af_{n-2}+bf_{n-1}\qquad n\ge3gn​=afn−2​+bfn−1​n≥3
      • 证明:第二数归即可得证。
  • 性质 XIV\mathrm{XIV}XIV :斐波那契数广义定义的负数公式 (5/10)

    • f(n)={f(−n)nisodd−f(−n)nisevenf(n)=\begin{cases}f(-n)&n\ is\ odd\\-f(-n)&n\ is\ even\end{cases}f(n)={f(−n)−f(−n)​n is oddn is even​
    • 证明:简单第二数归+分类讨论即可得证。
  • 性质 XV\mathrm{XV}XV :斐波那契数与公约数 (6/10)

    • 相关证明:参考dl博客:[Mark_ZZY 的博客]与樱花赞

    • 引理(1)gcd⁡(fn,fn+1)=1\color{red}\gcd(f_n,f_{n+1})=1gcd(fn​,fn+1​)=1

      • 证明:辗转相减法

        Gcd(F[n+1],F[n])
        =Gcd(F[n+1]-F[n],F[n])
        =Gcd(F[n],F[n-1])
        =Gcd(F[2],F[1])
        =1
        
    • 引理(2)gcd⁡(fn+m,fn)=gcd⁡(fn,fm)\color{red}\gcd(f_{n+m},f_n)=\gcd(f_n,f_m)gcd(fn+m​,fn​)=gcd(fn​,fm​)

      • 证明:利用引理1和性质3(基本转换)

        Gcd(F[n+m],F[n])
        =Gcd(F[n+1]F[m]+F[n]F[m-1],F[n]);
        =Gcd(F[n+1]F[m],F[n]);
        =Gcd(F[n+1],F[n])*Gcd(F[m],F[n])
        =Gcd(F[m],F[n]);
        
    • (3)gcd⁡(fn,fm)=fgcd⁡(n,m)\color{red}\gcd(f_n,f_m)=f_{\gcd(n,m)}gcd(fn​,fm​)=fgcd(n,m)​

      • 证明:利用引理2和辗转相除法

        I=gcd⁡(fn,fm)=gcd⁡(f(nmodm),fm)⋮=gcd⁡(fgcd⁡(n,m),fgcd⁡(n,m))=fgcd⁡(n,m)\begin{aligned}I&=\gcd(f_n,f_m)\\&=\gcd(f_{(n\bmod m)},f_m)\\&\;\;\vdots\\&=\gcd(f_{\gcd(n,m)},f_{\gcd(n,m)})\\&=f_{\gcd(n,m)}\end{aligned}I​=gcd(fn​,fm​)=gcd(f(nmodm)​,fm​)⋮=gcd(fgcd(n,m)​,fgcd(n,m)​)=fgcd(n,m)​​

  • 性质 XVI\mathrm{XVI}XVI :斐波那契数与完全平方数 (3/10)

    • 出处:斐波那契数与完全平方数
    • ∣∑nk=1(−1)k+1f2k−1∣\Big | \underset{k=1}{\overset{n}{\sum}}(-1)^{k+1}f_{2k-1}\Big |∣∣∣​k=1∑n​​(−1)k+1f2k−1​∣∣∣​ 是完全平方数
    • 证明:I=f1−f3+f5−f7+⋯+(−1)n+1f2n−1=1−(f12+f22)+(f22+f32)−(f32+f42)+⋯=1−f12(−f22+f22)+(f32−f32)−f42⋯=(−1)nfn−12\begin{aligned}I&=f_1-f_3+f_5-f_7+\cdots+(-1)^{n+1}f_{2n-1}\\&=1-(f_1^2+f_2^2)+(f_2^2+f_3^2)-(f_3^2+f_4^2)+\cdots\\&=1-f_1^2(-f_2^2+f_2^2)+(f_3^2-f_3^2)-f_4^2\cdots\\&=(-1)^nf_{n-1}^2\end{aligned}I​=f1​−f3​+f5​−f7​+⋯+(−1)n+1f2n−1​=1−(f12​+f22​)+(f22​+f32​)−(f32​+f42​)+⋯=1−f12​(−f22​+f22​)+(f32​−f32​)−f42​⋯=(−1)nfn−12​​
    • III 加个绝对值之后就是该式子,易得是个完全平方数。
  • 性质 XVII\mathrm{XVII}XVII :斐波那契数与完全平方数2 (3/10)

    • ∑nk=1(−1)n−kfn=fn−1−(−1)n\underset{k=1}{\overset{n}{\sum}}(-1)^{n-k}f_n=f_{n-1}-(-1)^nk=1∑n​​(−1)n−kfn​=fn−1​−(−1)n
    • 式子为 I=fn−fn−1+fn−2−⋯+(−1)n+1f1I=f_n-f_{n-1}+f_{n-2}-\cdots+(-1)^{n+1}f_1I=fn​−fn−1​+fn−2​−⋯+(−1)n+1f1​ ,与上式略有不同。
    • 证明:分类讨论即可。
  • 性质 XVIII\mathrm{XVIII}XVIII :两倍项关系 (2/10)

    • 出处:百度百科

    • f2nfn=fn−1+fn+1\frac{f_{2n}}{f_n}=f_{n-1}+f_{n+1}fn​f2n​​=fn−1​+fn+1​

    • 证明(好家伙百度百科都不给的要自己证明///)

      • 引理1:f2n=fn+12−fn−12f_{2n}=f_{n+1}^2-f_{n-1}^2f2n​=fn+12​−fn−12​

        • 引理2: f2n+1=fn+12+fn2f_{2n+1}=f_{n+1}^2+f_n^2f2n+1​=fn+12​+fn2​

          • 证明:n=1,2都成立用第二数归假设∀k≤2n+3都满足f2k+1=fk+12+fk2∴f2n+5=3f2n+3−f2n+1=3(fn+22+fn+12)−(fn+12+fn2)=3fn+22+2fn+12−fn2n=1,2都成立\\用第二数归假设\forall k\le2n+3都满足 f_{2k+1}=f_{k+1}^2+f_k^2\\\therefore f_{2n+5}=3f_{2n+3}-f_{2n+1}=3(f_{n+2}^2+f_{n+1}^2)-(f_{n+1}^2+f_n^2)=3f_{n+2}^2+2f_{n+1}^2-f_n^2n=1,2都成立用第二数归假设∀k≤2n+3都满足f2k+1​=fk+12​+fk2​∴f2n+5​=3f2n+3​−f2n+1​=3(fn+22​+fn+12​)−(fn+12​+fn2​)=3fn+22​+2fn+12​−fn2​

            我们只需证明 3fn+22+2fn+12−fn2=fn+32+fn+223f_{n+2}^2+2f_{n+1}^2-f_n^2=f_{n+3}^2+f_{n+2}^23fn+22​+2fn+12​−fn2​=fn+32​+fn+22​ 成立

            我们只需证明 2fn+22+2fn+12−fn2=(fn+2+fn+1)22f_{n+2}^2+2f_{n+1}^2-f_n^2=(f_{n+2}+f_{n+1})^22fn+22​+2fn+12​−fn2​=(fn+2​+fn+1​)2 成立

            我们只需证明 fn+22+(fn+1+fn)(fn+1−fn)=2fn+2fn+1f_{n+2}^2+(f_{n+1}+f_n)(f_{n+1}-f_n)=2f_{n+2}f_{n+1}fn+22​+(fn+1​+fn​)(fn+1​−fn​)=2fn+2​fn+1​ 成立

            我们只需证明 fn+2+fn+1−fn=2fn+1f_{n+2}+f_{n+1}-f_n=2f_{n+1}fn+2​+fn+1​−fn​=2fn+1​ 成立(两边同时消掉fn+2f_{n+2}fn+2​)

            我们只需证明 fn+2−fn=fn+1f_{n+2}-f_n=f_{n+1}fn+2​−fn​=fn+1​ 成立

            此式显然成立,故假设成立,故引理2成立。

        • 证明引理1:

          f2n+1=fn+12+fn2f_{2n+1}=f_{n+1}^2+f_n^2f2n+1​=fn+12​+fn2​

          f2n+1=f2n+f2n−1=f2n+fn2+fn−12f_{2n+1}=f_{2n}+f_{2n-1}=f_{2n}+f_n^2+f_{n-1}^2f2n+1​=f2n​+f2n−1​=f2n​+fn2​+fn−12​

          联立两式∴f2n=fn+12+fn2−fn2−fn−12=fn+12−fn−12□\therefore f_{2n}=f_{n+1}^2+f_n^2-f_n^2-f_{n-1}^2=f_{n+1}^2-f_{n-1}^2\Box∴f2n​=fn+12​+fn2​−fn2​−fn−12​=fn+12​−fn−12​□

      • 证明性质XVIII\mathrm{XVIII}XVIII:

        fnfn−1+fnfn+1=(fn+1−fn−1)fn−1+(fn+1−fn−1)fn+1=fn+12−fn−12=f2n\begin{aligned}&f_nf_{n-1}+f_nf_{n+1}\\&=(f_{n+1}-f_{n-1})f_{n-1}+(f_{n+1}-f_{n-1})f_{n+1}\\&=f_{n+1}^2-f_{n-1}^2\\&=f_{2n}\end{aligned}​fn​fn−1​+fn​fn+1​=(fn+1​−fn−1​)fn−1​+(fn+1​−fn−1​)fn+1​=fn+12​−fn−12​=f2n​​

        ∴f2nfn=fn−1+fn+1□\therefore \frac{f_{2n}}{f_n}=f_{n-1}+f_{n+1} \Box∴fn​f2n​​=fn−1​+fn+1​□

  • 性质 XIX\mathrm{XIX}XIX :斐波那契数与其他数字的关系(猜想) (2/10)

    • 斐波那契数与完全平方数:只有1和144为既是斐波那契数又是平方数
    • 斐波那契数与完全立方数:只有8既是斐波那契数又是立方数
    • 斐波那契数与三角数 : 可能只有 nnn=1,2,4,8,10 , fnf_nfn​ 是三角数
  • 性质 XX\mathrm{XX}XX :斐波那契数与质数 (4/10)

    • 出处:【原】斐波那契质数(Fibonacci Prime)详解
    • 斐波那契质数
      • 定义:若某Fibonacci数与任何比它小的Fibonacci数互质,那么它就是Fibonacci质数。
    • 结论:f3和f4是斐波那契质数。从第五项开始,某项为斐波那契质数⟺其项数是质数f_3 和 f_4 是斐波那契质数。从第五项开始,某项为斐波那契质数\iff 其项数是质数f3​和f4​是斐波那契质数。从第五项开始,某项为斐波那契质数⟺其项数是质数

常系数的二次线性齐次递归关系

  • 定义 : 一个常系数的二次线性齐次递归关系是一个形如:

an=c1an−1+c2an−2a_n=c_1a_{n-1}+c_2a_{n-2} an​=c1​an−1​+c2​an−2​

​ 的方程。

  • 其中 c1,c2c_1,c_2c1​,c2​ 为实数且 c2≠0c_2\ne0c2​​=0 。
  • 性质:
    • 如果方程 r2−c1r−c2=0r^2-c_1r-c_2=0r2−c1​r−c2​=0 有两个不同的根 r1,r2r_1,r_2r1​,r2​
    • 则序列 {an}\{a_n\}{an​} 的解当且仅当 an=C1r1n+C2r2n\color{red}a_n=C_1r_1^n+C_2r_2^nan​=C1​r1n​+C2​r2n​
    • 其中 n∈Nn\in \mathbb{N}n∈N 且 C1,C2C_1,C_2C1​,C2​ 为常数,可以通过序列的前两项得到。

斐波那契进制/斐波那契编码

百度百科

  • 斐波那契进制:

base:

1(10) = 1(fib);

2(10) = 10(fib);

3(10) = 100(fib);

5(10) = 1000(fib);

8(10) = 10000(fib);

e.g.

4(10) = 3(10) + 1(10) = 101(fib);

6(10) = 5(10) + 1(10) = 1001(fib);

7(10) = 5(10) + 2(10) = 1010(fib);

12(10) = 8(10) + 3(10) + 1(10) = 10101(fib);

  • 斐波那契编码:

    • 就是把这个斐波那契进制数倒过来写,然后在末尾追加一个1。

一些模板

  • 矩阵快速幂来求fn%Pn<MAX_LLf_n\%P\quad n<MAX\_LLfn​%Pn<MAX_LL:
/*_            __   __          _          _
| |           \ \ / /         | |        (_)
| |__  _   _   \ V /__ _ _ __ | |     ___ _
| '_ \| | | |   \ // _` | '_ \| |    / _ \ |
| |_) | |_| |   | | (_| | | | | |___|  __/ |
|_.__/ \__, |   \_/\__,_|_| |_\_____/\___|_|__/ ||___/
*/
#include<bits/stdc++.h>
#define show(x) std::cerr << #x << "=" << x << std::endl
using namespace std;
typedef long long ll;const int MAX = 1e6+50;
const double EPS = 1e-10;
const long long MOD = 1e9+7;
typedef long long Elemtype;
const int SZ = 2;
struct Matrix{Elemtype mat[SZ][SZ];
}M1,M2,M3;Matrix mul(Matrix x,Matrix y,ll sz){Matrix ans;for(int i=0;i<sz;++i){for(int j=0;j<sz;++j){ans.mat[i][j]=0;for(int k=0;k<sz;++k){ans.mat[i][j]+=(x.mat[i][k]*y.mat[k][j])%MOD;}ans.mat[i][j]%=MOD;}}return ans;
}
ll qpow(ll a, ll n)
{ll ans = 1;while(n){if(n&1){ans=ans*a%MOD;}n>>=1;a=a*a%MOD;}return ans;
}
Matrix Create_Matrix(ll sz){Matrix ans;for(ll i=0;i<sz;++i)for(ll j=0;j<sz;++j)if(i==j)ans.mat[i][j]=1;else ans.mat[i][j]=0;return ans;
}
Matrix M_qpow(Matrix x,ll n,ll sz)
{Matrix ans = Create_Matrix(sz);while(n){if(n&1){ans = mul(ans,x,sz);}n>>=1;x = mul(x,x,sz);}return ans;
}
int main()
{ll n;cin >> n;M1.mat[0][0]=1;       //构建2*2矩阵如下M1.mat[0][1]=1;     //1 1M1.mat[1][0]=1;       //1 0M1.mat[1][1]=0;M3 = M_qpow(M1,n-1,2);    //方法挺多的,也可以 M1^n次方然后取[1][0]cout << M3.mat[0][0];return 0;
}
  • 矩阵快速幂来求fn%Pn≤1030000000f_n\%P\quad n\le 10^{30000000}fn​%Pn≤1030000000:
// luogu-judger-enable-o2
#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int N=1e4,S=30000001;
char s[S];
LL pi[N],k[N],P;
inline LL gcd(register LL n,register LL m){while(m^=n^=m^=n%=m); return n;}
inline LL lcm(register LL n,register LL m){return n/gcd(n,m)*m;}
struct matrix
{LL a[3][3];matrix(){memset(a,0,sizeof(a));}matrix operator*(matrix x){matrix s;for(register int i=1;i<=2;i++) for(register int j=1;j<=2;j++) for(register int k=1;k<=2;k++) s.a[i][j]=(s.a[i][j]+a[i][k]*x.a[k][j])%P;return s;}matrix operator^(register LL k){matrix s=*this,e;e.a[1][1]=e.a[2][2]=1;for(;k;k>>=1,s=s*s) if(k&1) e=e*s; return e;}
};
inline int power(register LL n)
{matrix a,ans;a.a[1][1]=a.a[1][2]=a.a[2][1]=1,a.a[2][2]=0;ans=a^n;return ans.a[1][2];
}
inline LL Get(register LL p)
{register int s=sqrt(p),tot=0;for(register int i=2;i<=s;++i)if(!(p%i)){pi[++tot]=i,k[tot]=1;while(!(p%i)) p/=i,k[tot]*=i;}for(register int i=1;i<=tot;++i) k[i]/=pi[i];if(p!=1) k[++tot]=1,pi[tot]=p;for(register int i=1;i<=tot;++i)if(pi[i]==2) k[i]*=3;else if(pi[i]==3) k[i]*=5;else if(pi[i]==5) k[i]*=20;else if(pi[i]%5==1||pi[i]%5==4) k[i]*=pi[i]-1;else k[i]*=(pi[i]+1)<<1;register LL ans=k[1];for(register int i=2;i<=tot;++i) ans=lcm(ans,k[i]);return ans;
}
int main()
{register int len;register LL m,n=0;scanf("%s%lld",s+1,&P),len=strlen(s+1);if(P==1) return cout<<0,0;m=Get(P);for(register int i=1;i<=len;++i) n=((n<<3)+(n<<1)+(s[i]^48))%m;if(!n) return cout<<0,0;if(n==1) return cout<<1,0;return cout<<power(n),0;
}
  • 矩阵快速幂求广义斐波那契数
/*_            __   __          _          _
| |           \ \ / /         | |        (_)
| |__  _   _   \ V /__ _ _ __ | |     ___ _
| '_ \| | | |   \ // _` | '_ \| |    / _ \ |
| |_) | |_| |   | | (_| | | | | |___|  __/ |
|_.__/ \__, |   \_/\__,_|_| |_\_____/\___|_|__/ ||___/
*/#define ll long long
using namespace std;const int MAX = 2e5+50;
const ll  MOD = 1e9+7;ll P;
const int SZ = 2;
struct Matrix{ll mat[SZ][SZ];
}M1,M2,M3;Matrix mul(Matrix x,Matrix y,ll sz){Matrix ans;for(int i=0;i<sz;++i){for(int j=0;j<sz;++j){ans.mat[i][j]=0;for(int k=0;k<sz;++k){ans.mat[i][j]+=(x.mat[i][k]*y.mat[k][j])%P;}ans.mat[i][j]%=P;}}return ans;
}
Matrix Create_Matrix(ll sz){Matrix ans;for(ll i=0;i<sz;++i)for(ll j=0;j<sz;++j)if(i==j)ans.mat[i][j]=1;else ans.mat[i][j]=0;return ans;
}
Matrix M_qpow(Matrix x,ll n,ll sz)
{Matrix ans = Create_Matrix(sz);while(n){if(n&1){ans = mul(ans,x,sz);}n>>=1;x = mul(x,x,sz);}return ans;
}
int main()
{ll p,q,a_1,a_2,n;cin >> p >> q >> a_1 >> a_2 >> n >> P;M1.mat[0][0]=p;        //构建2*2矩阵如下M1.mat[0][1]=1;     //p 1M1.mat[1][0]=q;       //q 0M1.mat[1][1]=0;M3 = M_qpow(M1,n-2,2);    //方法挺多的,也可以 M1^n次方然后取[1][0]cout << (a_2 * M3.mat[0][0] % P + a_1 * M3.mat[1][0] % P) % P;return 0;
}
/***/

一些应用题

Fibonacci:OEIS

  1. F(n+1) = number of tilings of a 2 X n rectangle by 2 X 1 dominoes.

证明:简单递推

  1. F(n+2) = number of binary sequences of length n that have no consecutive 0’s
ll f[MAX];
ll g[MAX];
int main()
{int n;cin >> n;f[0] = g[0] = 1;for(int i = 1;i<=n;++i){f[i] = g[i-1];g[i] = f[i-1] + g[i-1];show4(i,f[i],g[i],f[i]+g[i]);}return 0;
}

证明:f和g都是Fibonacci(第二数归)

  1. F(n+2) = number of subsets of {1,2,…,n} that contain no consecutive integers.

课后练习题(难?)

  • (绿题)斐波那契:洛谷 P3938
  • (黄题)求Fn%p:洛谷 P1962 n<263n< 2^{63}n<263
  • (绿题)广义斐波那契数列:洛谷 P1349
  • (蓝题)巨大的斐波那契数!:UVA11582
  • (蓝题)斐波那契公约数:洛谷 P1306

下期预告(???)

  • 斐波那契循环节(紫题)求Fn%p:洛谷P4000 n≤1030000000n\le 10^{30000000}n≤1030000000
  • 太多了!!!

【小组专题三:斐波那契专题】斐波那契 与其20个性质 | 泽肯朵夫表示 | 卢卡斯数 与其8个性质 | 常系数二次线性齐次序列 | 模板与例题相关推荐

  1. 专题三:bfs、图论专题(1.cf)

    其他 挑战程序设计竞赛 1.POJ 3259 Wormholes 这道题后来我又想了一个方法,只能说这个方法不是完全正确,还要因题而定.为什么这么说呢?我用的是Bellman-Ford找负圈,可以这么 ...

  2. 新手入门刷题(专题三)暴力枚举

    新手入门刷题(专题三)暴力枚举--->持续更新 4.14 统计方形(数据加强版) 题目描述 有一个 n×m 方格的棋盘,求其方格包含多少正方形.长方形(不包含正方形). 输入格式 一行,两个正整 ...

  3. Kuangbin专题三Dancing Links

    Kuangbin专题三Dancing Links 没写完所有的,因为要去上课了赶紧先预习一下,这就先发出来吧. 跳舞链这东西以前在hihocoder上翻到过,当时看的模模糊糊的,现在好好学一学. 暂时 ...

  4. mysql 优化表 3000万_mysql优化:专题三、关于单表查询,可以这么优化

    mysql优化:专题三.关于单表查询,可以这么优化 作者:PHPYuan 时间:2018-10-18 03:41:26 上篇讲解了「mysql优化专题」90%程序员都会忽略的增删改优化(2),相信大家 ...

  5. 数学编程:经典数学编程案例之斐波那契:斐波那契数列的简介、代码实现、exe程序应用(斐波纳契时钟设计)之详细攻略

    数学编程:经典数学编程案例之斐波那契:斐波那契数列的简介.代码实现.exe程序应用(斐波纳契时钟设计)之详细攻略 目录 斐波那契数列的简介 斐波那契数列代码实现 1.python代码实现 2.Java ...

  6. 链方法[C# 基础知识系列]专题三:如何用委托包装多个方法——委托链

    最近研究链方法,稍微总结一下,以后继续补充: 弁言: 上一专题分析了下编译器是如何来翻译委托的,从中间语言的角度去看委托,希望可以帮助大家进一步的理解委托,然而之前的分析都是委托只是封装一个方法,那委 ...

  7. 开发指南专题三:JEECG微云快速开发平台项目编码规范

    开发指南专题三:JEECG微云快速开发平台项目编码规范 4. 项目编码规范 4.1. 项目编码规范 1. 项目编码格式为UTF-8(包括:java,jsp,css,js) 2. sevice接口命名: ...

  8. Spring学习笔记专题三

    专题三 (1)使用注解来完成AOP: 1,想办法把类让Spring来管理(XML配置或者注解方式) 2,在增强的提供类上添加标签: 3,在Spring配置文件中开启注解的AOP; 4,关于AOP的其他 ...

  9. MRP专题三:物料主数据MRP参数解释

    MRP专题三:物料主数据MRP参数解释 1.1 MRP1视图 1.1.1 MRP组 mrp group 指定系统运行的 mrp 控制参数的组别.这些参数包括,例如策略组.消耗模式.重计划期间.计划 区 ...

最新文章

  1. html5拖动图像的关键字,6.7 拖放图像 - HTML5 Canvas 实战
  2. plus flink add.php,不想要dede5.7织梦链只要修改模板里几行代码
  3. SpringBoot开发最佳实践
  4. 学习C++ - 类(Classes)的定义与实现
  5. 利用SecureCRT在linux与Windows之间传输文件
  6. 论文浅尝 | 基于知识图谱的智能调研方法(DI佳作)
  7. vue04-components
  8. java输入a控制台打印1_Java—— 流(Stream)、文件(File)和IO
  9. 安装vbb的一些经验(包括mysql,apache)
  10. CHK文件恢复工具、软件(CHKRecovery V2.0)
  11. 商业研究(20):滴滴出行,进军海外包车?与OTA携程和包车创业公司,共演“三国杀”?看看分析师、投资人和权威人士等10个人的观点碰撞
  12. 公众号网课查题-掘光者题库系统
  13. 16、Redis手动创建集群
  14. stm32定时器从模式解析
  15. 必看!2021年云计算行业五大趋势,云南昆明企业小型云计算平台搭建及解决方案
  16. 如何用 Python 自动发送微博?
  17. Scratch-简易时钟制作
  18. 介绍7种分析问题的思维方法
  19. 上海养老保险(社保)缴费记录查询
  20. Linux-i386,x86_64啥区别

热门文章

  1. 十三、支持中文和多语言设置
  2. 亲爱的行业佼佼者您好
  3. 成都扬帆牧哲教育咨询公司—怎么做网店运营?
  4. DevExpress 22.1.3 源代码版本-2022
  5. 【每日英文】2021.10.20
  6. Android获取SHA1
  7. ubuntu系统(十):卸载Ubuntu系统详细步骤
  8. 《Springboot设计思想》2-Springboot青出于蓝
  9. bugfree搭建-windows系统
  10. ad域服务器信息怎么获取,获取AD域用户登入信息