说在前面
你可能看过lym一年前在csdn上写的\(\mathcal{O}(\log{n})\)求解Fibonacci数列前\(n\)项,现在看来这篇文章真的屑。
不过我们今天不讲这玩意,今天我们讲关于Fibonacci数列的生成函数(又称母函数)和其通项的推导,学过的不用往下看了,这玩意真的很基础。不过没学过生成函数(甚至连通项都不知道是啥)的也建议先补补课再来。
关于Fibonacci数列
斐波那契数列是这样的一个数列:\(0,1,1,2,3,5,8,\cdots\)
设\(f_n\)为它的第\(n\)项,那么它的递推公式:
生成函数与通项
想必大部分人都知道\(f_n = \dfrac{1}{\sqrt{5}}\left[\left(\dfrac{1 + \sqrt{5}}{2}\right) ^ n - \left(\dfrac{1 - \sqrt{5}}{2}\right) ^ n\right]\)
但是怎么得到的呢?
我们考虑求出其生成函数。
设Fibonacci的生成函数是\(F(x)\),有
显然有\(F(x) - xF(x) - x^2F(x) = x\)
整理一下发现\(F(x) = \dfrac{x}{1 - x - x^2}\)
然后我们就考虑证明\(\dfrac{x}{1 - x - x^2} = \dfrac{1}{\sqrt{5}}\left[\left(\dfrac{1 + \sqrt{5}}{2}\right) ^ n - \left(\dfrac{1 - \sqrt{5}}{2}\right) ^ n\right]\)
这玩意太好整了啊。
考虑配方。
解得
得
裂个项,易得
通过一开始我们给的式子,可以求出第\(n\)项的系数
题外话
这玩意还有其他许多神仙方法可以整,包括一些初等的数列知识,高到一些特征向量等,我们只能不断地学习。