生成函数浅谈

距离中考 \(122\) 天。

生成函数是很强的东西。同时还算简单。
这边文章以推斐波那契的通项公式为目标进行书写。

对于一个形式幂级数 , \(\text F(x)=\sum\limits^{\infty}_{i=0} x^i=1+x+x^2 \dots x^{\infty}\)
我们可以求出一个在定义域里的式子。
简单来说 , \(\text F(x)=1+x+x^2 \dots x^{\infty}\) , 那么 \(x \times \text F(x)=x+x^2+x^3 \dots x^{\infty}\) ,
会发现一个简单的化简 :
\(\text F(x)-x \times \text F(x)=(1+x+x^2 \dots x^{\infty})-(x+x^2+x^3 \dots x^{\infty})=1\) , 那么我们可以写成 :
\(\text F(x)-x \times \text F(x)=1\) , \(\text F(x)=\frac 1 {1-x}\)

你会发现这个式子很神奇。
比如 , \(x\) 代入 \(-1\) , 得到 \(1-1+1-1+1-1 \dots =\frac 1 2\) , 而这明显等于 \(0\)。 得到 \(\frac 1 2=0\)
所以这个有定义域 , \(x \in (-1,1)\)

只有一个例子肯定不够 , 我们加点系数和次数。
用一些加减的方法可以得到这样的式子 , 比如 :

\[\begin{aligned} \text F(x) =\sum\limits^{\infty}_{i=0} 2^ix^2 & =1+2x+4x^2+8x^3 \dots \\ 2x \times \text F(x) & =2x+4x^2+8x^3 \dots \\ \text F(x)-2x \times \text F(x) & =1\\ \text F(x)& =\frac 1 {1-2x} \\ \end{aligned}\]

再来一个练手 :

\[\begin{aligned} x^{-1} \times \sum\limits^{\infty}_{i=0} x^{3i} & =x^{-1}+x^2+x^5 \dots \\ \text F(x)=\sum\limits^{\infty}_{i=0} x^{3i} & =1+x^3+x^6 \dots \\ x \times \sum\limits^{\infty}_{i=0} x^{3i} & =x+x^4+x^7 \dots\\ (x^{-1}+x+1)\text F(x)-x^{-1} =\frac 1 {1-x} & =1+x+x^2+x^3 \dots \\ \text F(x) & =\frac 1 {x-x^2} \div (x^{-1}+x+1) \\ \text F(x) & =\frac 1 {1-x^3} \end{aligned}\]

其实有两个结论记住即可 :

\[\frac 1 {1-ax^b}=\sum\limits^{\infty}_{i=0} a^ix^{bi} \]

\[\frac 1 {(1-x)^k}=\sum\limits^{\infty}_{i=0}\text C^{i-1}_{i+k-1} x^i \]


接下来就是如何求斐波那契数列的通项公式了。
直接开推 :

\[\begin{aligned} \text F(x) = 1+x+ 2&x^2+3x^3+5x^4+8x^5 \dots \\ x \times \text F(x) = x+& x^2+ 2x^3+3x^4+5x^5+8x^6 \dots \\ x^2 \times \text F(x) = &x^2+\ \ x^3+2x^4+ 3x^5+5x^6+8x^7 \dots \\ \text F(x)-x\text F(x)-x^2\text F(x) & =1 \\ \text F(x) & =\frac 1 {1-x-x^2} \\ \end{aligned}\]

然鹅这个东西好像不那么好搞 , 我们可以把它光翼展开为一个只有上面两种结论形式的多项式。
可以将它裂开成 \(\frac 1 {(1-k_1x)(1-k_2x)}\) 的形式 , 即:

\[\begin{aligned} 1-x-x^2 & =(1-k_1x)(1-k_2x) \\ 1-x-x^2 & =1-k_1x-k_2x+k_1k_2x^2 \\ -1-x & =-k_1x-k_2x+k_1k_2x \\ \end{aligned}\]

然后可以列出简单的二元一次方程 : \(-k_1-k_2=-1\) , \(k_1k_2=-1\) , 可以解得 : (相反也可以)

\[k_1=\frac{1+\sqrt 5} 2 , k_2=\frac{1-\sqrt 5} 2 \]

这不就是传说中的黄金分割率吗 , 直接写成 \(\phi=k_1 , \hat\phi=k_2\)
现在我们考虑如何把一个 \(\frac 1 {(1-\phi x)(1-\hat\phi x)} \implies \frac{q_1}{1-\phi x}+\frac{q_2}{1-\hat\phi x}\) 的多项式。
这个东西可以直接看成一个方程 , 因为光翼展开以后就是分子乘上分母 : (因为未知数大于方程数, 所以就乱搞吧)

\[\begin{aligned} q_1(1-\hat\phi x)+q_2(1-\phi x)=1 \\ q_1+q_2-q_1\hat\phi x-q_2\phi x=1 \\ (q_1+q_2-1)-(q_1\hat\phi x+q_2\phi x)=0 \\ \end{aligned}\]

只需要合法即可 , 我们可以认为这两个式子都是 \(0\) , 则又得到方程 :
\(q_1+q_2=1\) , \(q_1\hat\phi+q_2\phi =0\) , 由此又可以解出 :

\[q_1=5^{-\frac 1 2}\phi , q_2=-5^{-\frac 1 2} \hat\phi \]

回到原来的式 , \(\frac 1 {(1-k_1x)(1-k_2x)}=5^{-\frac 1 2}(\frac 1 {1-\phi x}-\frac 1 {1-\hat\phi x})\) , 再代入我们数值的幂级数。

\[\begin{aligned} 5^{-\frac 1 2}(\frac 1 {1-\phi x}-\frac 1 {1-\hat\phi x}) & =5^{-\frac 1 2}(\sum\limits^{\infty}_{i=0} \phi^nx^i-\sum\limits^{\infty}_{i=0} \hat\phi^nx^i ) \\ & =\sum\limits^{\infty}_{i=0} 5^{-\frac 1 2}(\phi^n-\hat\phi^n)x^i \\ \end{aligned}\]

也就是说 , 对于一个幂级数来说 , \(5^{-\frac 1 2}(\phi^n-\hat\phi^n)\) 就是其系数 ,
然后我们就愉快的推出来啦!

\[\text{Fibonacci}(n)=5^{-\frac 1 2}(\phi^n-\hat\phi^n) \]

posted @ 2020-02-19 22:21  _ARFA  阅读(256)  评论(0编辑  收藏  举报