zoukankan      html  css  js  c++  java
  • 初学生成函数(二)——生成函数与斐波那契数列

    前言

    其实这个知识点早就知道了。

    但由于我一直都没有把它钻研透彻,而且还总是又忘记掉,因此常常要去网上重新搜索学习一遍。

    于是我就想,不如干脆自己写一篇博客,既能巩固现在的记忆,也方便往后的复习。

    斐波那契数列的生成函数

    考虑斐波那契数列的生成函数直接写出来就长这个样子:

    [F(x)=1x^1+1x^2+2x^3+3x^4+5x^5+8x^6+... ]

    根据斐波那契的递推公式(Fib(x)=Fib(x-1)+Fib(x-2)),其实转化成多项式的形式,我们列出(xF(x))(x^2F(x))

    [egin{align} F(x)&=1x^1+1x^2+2x^3+3x^4+5x^5+...\ xF(x)&=1x^2+1x^3+2x^4+3x^5+5x^6+...\ x^2F(x)&=1x^3+1x^4+2x^5+3x^6+5x^7+... end{align} ]

    斜着看,就会发现,(F(x)=x+xF(x)+x^2F(x))

    通过简单移项,可以得出(F(x)=frac x{1-x-x^2})

    这就是斐波那契数列的生成函数了。

    斐波那契数列的通项公式

    其实上面的过程算是简单而基础的,接下来才是此篇博客的核心内容。

    考虑我们把(1-x-x^2)这一项强行因式分解掉,得到:

    [1-x-x^2=(1-frac{1+sqrt5}2x)(1-frac{1-sqrt5}2x) ]

    方便起见,令(A=frac{1+sqrt 5}2,B=frac{1-sqrt5}2),也就是说:

    [F(x)=frac{x}{(1-Ax)(1-Bx)} ]

    现在我们要把它裂开,得到(frac{ax}{1-Ax})(frac{bx}{1-Bx})两项。

    列出方程:

    [egin{cases}a+b=1,\a imes A+b imes B=0end{cases}Rightarrowegin{cases}a=frac{A}{sqrt5},\b=-frac{B}{sqrt5}end{cases} ]

    代回原式得到:

    [F(x)=frac{frac{A}{sqrt5}x}{1-Ax}-frac{frac{B}{sqrt5}x}{1-Bx} ]

    当分母中变成一个关于(x)的一次式的时候,把(Ax)(Bx)各自视为一个整体我们就可以反向利用等比数列求和公式,就有:

    [frac{frac A{sqrt5}x}{1-Ax}=frac A{sqrt5}x(1+Ax+A^2x^2+...)=frac{A}{sqrt5}x+frac{A^2}{sqrt5}x^2+frac{A^3}{sqrt5}x^3+...\ frac{frac B{sqrt5}x}{1-Bx}=frac B{sqrt5}x(1+Bx+B^2x^2+...)=frac{B}{sqrt5}x+frac{B^2}{sqrt5}x^2+frac{B^3}{sqrt5}x^3+... ]

    因此就有:

    [F(x)=frac{A-B}{sqrt5}x+frac{A^2-B^2}{sqrt5}x+frac{A^3-B^3}{sqrt5}x+...=sum_{i=1}^{+infty}frac{A^i-B^i}{sqrt5}x^i ]

    (A=frac{1+sqrt 5}2,B=frac{1-sqrt5}2)代入,根据第(i)项的系数(frac{A^i-B^i}{sqrt5}),就得到了我们耳熟能详的斐波那契通项公式:

    [Fib(i)=frac1{sqrt5}((frac{1+sqrt5}2)^i-(frac{1-sqrt5}2)^i) ]

    后记

    斐波那契通项公式的推导应该还可以用到更一般的形如(frac x{1-px-qx^2})的生成函数上。

    这里给一道例题:【洛谷4451】[国家集训队] 整数的lqp拆分

  • 相关阅读:
    2020年Android面试题含答案
    flutter系列(一)----- 开发环境搭建
    Android应用安全防护和逆向分析 ——apk混淆成其他语言代码
    Android应用安全防护和逆向分析 ——apk反编译
    Android中 TextView 加载 混合字符 自动换行解决方案
    H5跳转app本地的规则定义
    Android ListView 九大重要属性详细分析
    ListView和ScrollView滑动到顶部
    简要的汇总Android
    关于ViewPager+Fragment中Fragment不销毁/生命周期
  • 原文地址:https://www.cnblogs.com/chenxiaoran666/p/OGF_Fib.html
Copyright © 2011-2022 走看看