浅谈生成函数推导斐波那契数列以及特征函数
浅谈生成函数推导斐波那契数列以及特征函数
一次数学课,尊敬的Mr.ZHU与L先生提出了一个叫做特征函数的东西,作为前竞赛生的Marcelo Jin 一惊,这不正是生成函数的化简版嘛,于是他决定,周日的时候再来好好回顾一下这个有趣的算法。
一.关于生成函数
1.数列的多项式表示法
对于一个数列\(a_n\),我们可以利用一个多项式来表示它,即\(A(x)=\Sigma a_i x^i\)
举个例子,对于数列\(a_n=n\),它的多项式表示法就是\(A(x)=x+2x^2+3x^3+...\)
这里的多项式是形式幂级数,也就是变量只是一个符号,我们不关心它取值带来的影响,只关心它所携带的信息。
因为本篇着眼于文化课上的生成函数应用,所以暂且不提指数型生成函数
2.生成函数的封闭形式
再举个例子,对于序列\(<1,1,1,1...>\),它的生成函数要写成一个多项式的形式,十分不直观,我们可以考虑把它的生成函数写成一个封闭的形式。
这里,分享两个方法。
设该数列的生成函数为\(A(x)\)
Solution 1:
根据我们小学就学过的等比数列求和公式,
\(
A(x)=\frac{x^n-1}{x-1}
\)
所以\(lim_{n\rightarrow+\infty} A(x)=\frac{1}{1-x}\)
Solution 2:
\(A(x)⋅x+1=A(x)\)
\(So\) \(we\) \(have\) \(A(x)=\frac{1}{1-x}\)
推广一下,又有
\(\frac{1}{1-kx}=1+kx+k^2x^2+k^3x^3...\)
也就是说,生成函数为\(\frac{1}{1-kx}\)的数列的通项公式为\(a_n=k^n\)
3.生成函数的应用
生成函数一般有两个用途
1.对于给定的递推公式,求其通项公式
2.解决一些计数类问题
二.斐波那契数列通项公式的推导
我们设斐波那契数列的通项公式为\(f_n\),设其生成函数为\(F(x)\),那么
\( F(x)=\Sigma{f_ix^i}=f_1x+ \Sigma_{i\geq2}{f_ix^i} \)
\( =x+\Sigma_{i\geq2}(f_{i-2}+f_{i-1})x^i \)
\( =x+x^2\Sigma_{i\geq2}f_{i-2}x^{i-2}+x\Sigma_{i\geq2}f_{i-1}x^{i-1} \)
\( =x+x^2F(x)+xF(x) \)
所以,\(F(x)=\frac{x}{1-x-x^2}\)
可用待定系数法分解为:
\(F(x)=\frac{1}{\sqrt5}((\frac{1}{1-\frac{1+\sqrt5}{2}x})-(\frac{1}{1-\frac{1-\sqrt5}{2}x}))\)
根据之前的结论,\(f_n=\frac{1}{\sqrt5}((\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n)\)
三.关于特征函数
朱老师说,对于一个递推式\(a_n=a_{n-1}+a_{n-2}\),可以写成\(x^2=x+1\)的形式,或者再都降个次,也就是\(x=1+\frac{1}{x}\)的形式,我们再观察上面的\(F(x)\),发现互为倒数,也就是说特征函数可以由生成函数来推导。
(UPDATE:前面证明需把数列扩展至第0位)