线性常系数齐次递推关系学习笔记

之前写的太烂了,重新写一个

这个名字怎么来的啊

以斐波那契数列\(\{f_n\}\)为例
\[ \begin{aligned} f_i &= f_{i - 1} + f_{i - 2}\\ f_1 &= 1, f_2 = 1 \end{aligned} \]
"线性"表示没有平方项,"常系数"表示没有系数是变量

"齐次"表示没有常数项

应该是这样的

问题引入

1

\(f_n\;\mathrm{mod}\;10^9 + 7, n \leq 2^{30}\)

这应该是最简单的了,直接矩阵快速幂

2

块速递推

van了,这怎么做啊啊啊

\(\mathrm{OGF:}\)我来啦!!!

普通型生成函数自觉起座,秒了此题

设这个数列的生成函数为\(G(x)\)

由递推式:
\[ \begin{aligned} G(x) &= 233xG(x) + 666x^2G(x) + x \\ \therefore G(x) &= \frac{x}{1 - 233x - 666x^2} \\ &= \frac{x}{-666(x_1-x)(x_2-x)} \\ &= \frac{x}{-666(x_1-x_2)} \times\left(\frac{1}{x_1-x}-\frac{1}{x_2 - x}\right)\\ &= \cdots \end{aligned} \]
不想写了,看这个

好麻烦啊,怎么办啊

特征方程站了起来:

\(a_n=233a_{n-1}+666a_{n-2}\)的特征方程为
\[ x^2=233x+666 \\ x^2-233x+666=0 \\ x_1=\frac{233+\sqrt{56953}}2,x_2=\frac{233-\sqrt{56953}}2 \\ \therefore a_n=\alpha x_1^n+\beta x_2^n \\ \because a_0=0,a_1=1 \\ \therefore \begin{cases} \alpha+\beta=0 \\ \alpha x_1+\beta x_2=1 \end{cases} \\ \therefore \begin{cases} \alpha=\frac1{\sqrt{56953}} \\ \beta=-\frac1{\sqrt{56953}} \end{cases} \\ \therefore a_n=\frac1{\sqrt{56953}}\left(\left(\frac{233+\sqrt{56953}}2\right)^n-\left(\frac{233-\sqrt{56953}}2\right)^n\right) \\ \because 188305837^2 \equiv 56953 \; (\text{mod}\;10^9+7) \\ \therefore a_n \equiv 233230706 \times\left(94153035^n-905847205^n\right) \]
解决啦!!!

正题

递推关系\(a_n = f_1a_{n-1} + f_2a_{n-2} + \cdots + f_ka_{n-k}\)的特征方程为
\[ x^k = f_1x^{k-1} + f_2x^{k-2} + \cdots + f_k \]
解出来之后会有很多很多的根,对其进行分类讨论

情况一:

\(x\)\(k\)重根,那么在通项中加入\(f(n)x^n\),其中\(f(n)\)是一个\(k-1\)次多项式,需要待定系数

情况二:

\(x_1,x_2\)是一对共轭复根\(a\pm bi\)

那么在通项中加入:
\[ r^n(\alpha cos(n\theta)+\beta sin(n\theta)) \]
其中\(\mathrm{tan}\theta=\frac{b}{a},\;r=\sqrt{a^2+b^2}\)

例题


\[ \left\lceil (a + \sqrt b) ^ n\right\rceil \% m,\ (a-1)^2 < b < a^2 \]
解:原式为
\[ (a+\sqrt b)^n + (a - \sqrt b)^n \]
是不是像情况一的时候的通项公式???

我们可以使用韦达定理还原特征方程,求出递推式,矩阵快速幂即可。

想不到还有反着推的题目吧

猜你喜欢

转载自www.cnblogs.com/cj-xxz/p/10330036.html