加载中...

[学习笔记] 生成函数

生成函数学习笔记

普通生成函数

定义

我们定义序列\(<a>\)的普通生成函数为

\[\sum_na_nx^n \]

运算

设序列\(<a>,<b>\)的生成函数分别为\(F(x),G(x)\),我们定义加法

\[F(x)+G(x)=\sum_n(a_n+b_n)x^n \]

这就是说,\(F(x)+G(x)\)是序列\(<a+b>\)的生成函数.

我们定义乘法为他们的卷积

\[F(x)G(x)=\sum_nx^n\sum_{i=0}^na_ib_{n-i} \]

\(F(x)G(x)\)是序列\(\langle\sum_{i=0}^{n}a_ib_{n-i}\rangle\)的生成函数.

一些有趣的trick

在生成函数的定义下,设\(\langle1,1,1...\rangle\)的生成函数为\(F(x)\),我们有

\[F(x)x+1=F(x) \]

我们怎么理解这件事?先考虑\(F(x)x\)所对应的原序列为\(\langle 0,1,1,1,1,\rangle\),想要变回原序列,我们只需让这个序列的零次项系数变为\(1\),也就是\(+1\)即可.

由上式,我们可以得到

\[F(x)=\frac{1}{1-x} \]

类似地,我们可以得到等比数列\(\langle 1,p^2,p^3,p^4...\rangle\)的生成函数\(G(x)\)满足

\[G(x)px+1=G(x) \\G(x)=\frac{1}{1-px} \]

这是生成函数的常见手段.

麦克劳林展开

通过麦克劳林展开可以计算生成函数.,计算公式如下:

\[f(x)=\sum_{i=0}^{\infty}\frac{f^{(n)}(0)}{i!}x^n \]

其中\(f^{n}(0)\)表示\(f(x)\)\(x_0=0\)处的\(n\)阶导数.利用麦克劳林展开,我们可以快速计算.

广义二项式

反转上指标

所谓反转上指标,级考虑组合数中出现负数时,我们将其变为正数.下面给出公式.

\[\begin{pmatrix}n\\m\end{pmatrix}=(-1)^m\begin{pmatrix}m-n-1\\m\end{pmatrix} \]

广义二项式定理

\[\forall a,b,n\in\R,(a+b)^n=\sum_{i=0}^n\begin{pmatrix}n\\i\end{pmatrix}a^ib^{n-i} \]

值得指出的是当\(n\notin\Z^+\)时,\(i\)无法求和到\(n\),所以\(i\)将求和到\(+\infty\).

利用上述工具,用生成函数解体变得轻而易举.

posted @ 2022-03-24 07:56  ZQYang  阅读(106)  评论(0)    收藏  举报