初学生成函数(二)——生成函数与斐波那契数列

前言

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

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

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

斐波那契数列的生成函数

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

\[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)\)

\[\begin{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}\)两项。

列出方程:

\[\begin{cases}a+b=1,\\a\times A+b\times B=0\end{cases}\Rightarrow\begin{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拆分

posted @ 2020-12-18 21:10  TheLostWeak  阅读(49)  评论(0编辑  收藏