【笔记】普通生成函数

【笔记】普通生成函数

0 前置芝士

0.1 等比数列

\(a_i=a_{i-1}q\Rightarrow a_i=a_1q^{i-1}\)

\(S=\sum\limits_{i=1}^n a_i\Rightarrow qS=\sum\limits_{i=2}^{n+1}a_i=S-a_{n+1}+a_1\)

\(\Rightarrow S=\dfrac{a_1(q^n-1)}{q-1}\)

0.2 泰勒级数

\(f\)\(x_0\) 处能被展成多项式的形式,那么有:

\[F(x_0)=\sum_{n=0}^{+\infty}\frac{f^{(n)}(x_0)}{n!}(x-x_0)^{n} \]

我们称这个 \(F(x_0)\)\(f\)\(x_0\) 上的泰勒级数。

特别地,\(x_0=0\) 时,称其为 \(f\) 的麦克劳林级数。


泰勒展开,本质就是用一个无限项的多项式去拟合一个函数。


0.3 求导

0.3.1 单项式求导

生成函数里面常用的求导,就是单项式。法则如下:

\[\left(x^a\right)^\prime=ax^{a-1} \]

0.3.2 求导间的运算

  1. \((f(x)\pm g(x))^\prime=f^\prime(x)\pm g^\prime(x)\)

  2. \((f(x)g(x))^\prime=f^\prime(x)g(x)+g^\prime(x)f(x)\)

  3. 链式法则: \(f(g(x))^\prime=g^\prime(x)\cdot f^\prime(g(x))\)

    看上去左右两边有相同项,有点奇怪,但实际上就是:整体求导乘上内层求导。

1 定义

本质上她是一种形式的东西。

对于一个数列 \(a_i\),定义她的 普通生成函数 (OGF) 为一个多项式 \(F(x)\),满足:

\[F(x)=\sum_{i=0}^{+\infty}f_ix^i \]


2 封闭形式

生成函数 和 封闭形式 的关系(?

一个 有限的初等函数的线性组合 \(f\) 成为 封闭形式,当且仅当,下述两个条件满足其一:

  1. \(f\) 不论取值,与 封闭形式 恒等。

  2. 对于 \(\dfrac 1 {1-x}\) 这个封闭形式。

    这个东西,实际上只有在 \(|x|<1\) 的时候,原多项式才收敛,且值与 封闭形式 相等。

    如果只用关心多项式的系数(比如生成函数),并不关心这个多项式的收敛,此时 封闭形式 可以理解成用有限的初等函数对无限项的多项式的简写。


\(\large\color{red}\star\) 封闭形式中的代换问题

出现收敛的问题的几个必要条件:

  1. 代换 \(x\) 的时候;
  2. 生成函数是无限项的。eg. \(\dfrac 1{1-x}\)

如果带进到生成函数以后,她的常数项或者第 \(i\) 次项系数变成无穷了或者其他不收敛的情况就有问题了。

特别地,如果封闭形式形如 \(\dfrac{1}{1-x}\),这个时候,我们一个多项式 \(T(x)\) 去代换 \(x\),直接检查 \(\left|[x^0]T(x)\right|<1\),即为是合法。


一个例子:

  • 对于封闭形式 \(\exp(x)\),考虑将 \(x+1\) 代换 \(x\),这是可以的。

    因为对于原生成函数 \(F(x)=\begin{aligned}\sum_{k=0}^{+\infty}\frac1{k!}x^k\end{aligned}\) ,将 \(x+1\) 带入,有:

    \[F(x)=\sum_{k=0}^{+\infty}\frac1{k!}(x+1)^k\\ [x^0]F(x)=\sum_{k=0}^{+\infty}\frac1{k!}=e \]

    由于她的常数项是收敛的,后面的系数也一定更小,进而收敛。所以这是可以的。

具体原理的话,等学了高数再来扯。

2.1 常用的封闭形式

\[\begin{array}{ccc} \text{数列}&\text{生成函数}&\text{封闭形式}&\\ \langle 1,1,1,1, \ldots\rangle & \sum\limits_{k=0}^{+\infty} x^{k} & \dfrac{1}{1-x} \\ \left\langle 1, c, c^{2}, c^{3}, \ldots\right\rangle & \sum\limits_{k=0}^{+\infty} c^{k} x^{k} & \dfrac{1}{1-c x} \\ \left\langle\left(\begin{array}{l} n \\ 0 \end{array}\right),\left(\begin{array}{l} n \\ 1 \end{array}\right),\left(\begin{array}{l} n \\ 2 \end{array}\right), \ldots,\left(\begin{array}{l} n \\ n \end{array}\right)\right\rangle & \sum\limits_{k=0}^{n}\left(\begin{array}{l} n \\ k \end{array}\right) x^{k} & (1+x)^{n} \\ \left\langle 1, n,\left(\begin{array}{c} n+1 \\ 2 \end{array}\right),\left(\begin{array}{c} n+2 \\ 3 \end{array}\right), \ldots\right\rangle & \sum\limits_{k=0}^{+\infty}\left(\begin{array}{c} n+k-1 \\ k \end{array}\right) x^{k} & \dfrac{1}{(1-x)^{n}} \\ \left\langle\left(\begin{array}{l} 0 \\ n \end{array}\right),\left(\begin{array}{l} 1 \\ n \end{array}\right),\left(\begin{array}{l} 2 \\ n \end{array}\right),\left(\begin{array}{l} 3 \\ n \end{array}\right), \ldots\right\rangle & \sum\limits_{k=0}^{+\infty}\left(\begin{array}{l} k \\ n \end{array}\right) x^{k} & \dfrac{x^{n}}{(1-x)^{n+1}} \\ \left\langle\left(\begin{array}{l} \alpha \\ 0 \end{array}\right),\left(\begin{array}{c} \alpha \\ 1 \end{array}\right),\left(\begin{array}{c} \alpha \\ 2 \end{array}\right),\left(\begin{array}{l} \alpha \\ 3 \end{array}\right), \ldots\right\rangle & \sum\limits_{k=0}^{+\infty}\left(\begin{array}{l} \alpha \\ k \end{array}\right) x^{k} & (1+x)^{\alpha} \\ \left\langle 0,1,-\dfrac{1}{2}, \dfrac{1}{3},-\dfrac{1}{4}, \ldots\right\rangle & \sum\limits_{k=0}^{+\infty} \dfrac{(-1)^{k+1}}{k} x^{k} & \ln (1+x) \\ \left\langle 0,1, \dfrac{1}{2}, \dfrac{1}{3}, \dfrac{1}{4}, \ldots\right\rangle & \sum\limits_{k=0}^{+\infty} \dfrac{1}{k} x^{k} & \ln \dfrac{1}{1-x} \\ \left\langle 1,1, \dfrac{1}{2}, \dfrac{1}{6}, \dfrac{1}{24}, \ldots\right\rangle & \sum\limits_{k=0}^{+\infty} \dfrac{1}{k !} x^{k} & e^{x} \end{array} \]


2.1.1 从 生成函数 到 封闭形式 的简单推导

前三个是 OIwiki 上面的的,还没来得及改。

  1. \[F(x)=\sum_{n\ge0}[n\ne0]x^n\color{red}{=\sum_{n\ge1}x^n}\\ F(x)x+x=F(x)\Rightarrow F(x)=\dfrac{x}{1-x} \]


  2. \[F(x)=\sum_{n\ge0}(n\bmod2+1)x^n\color{red}{=\sum_{n\ge0}x^{2n}}\\ F(x)x^2+1=F(x)\Rightarrow F(x)=\dfrac{1}{1-x^2} \]


  3. 1

    1. 法一 (myself

      先求:

      \[a=\left \langle 1,1,1,\cdots \right \rangle \\ F_1(x)=\sum_{n\ge0}x^n\\ F_1(x)x+1=F_1(x)\Rightarrow F_1(x)=\dfrac1{1-x} \]

      进而:

      \[F(x)=\sum_{n\ge0}(n+1)x^n\\ F(x)x+F_1(x)=F(x)\Rightarrow F(x)=\dfrac{\frac{1}{1-x}}{1-x}=\dfrac1{(1-x)^2} \]

    2. 法二 (求导

      \[ \]

  4. 二项式定理

  5. \(\large\color{red}\star\) 高维前缀和(咕

  6. 我们先假定 第 4 个 成立,她的生成函数有个等价形式:

    \[\sum_{k=0}^{+\infty}{n+k-1\choose n-1}x^k \]

    又发现,第 5 个 的数列在 \(k<n\) 的时候,其值均为 \(0\)。于是相当于将 \(n-1\) 换做 \(n\),再将生成函数右平移 \(n\)(即封闭形式 \(\times x^n\)

  7. \(\large\color{red}\star\) 牛顿二项式定理(咕

  8. 后面三个相等本质上都是因为她们泰勒展开相等。


2.2 生成函数的运算

  1. 系数后移:直接乘 \(x^k\)
  2. 系数前移:减去前 \(k\) 项,然后除以 \(x^k\)
  3. 系数乘 \(i\):先求导然后整体后移 \(1\)

  1. 两个生成函数以卷积形式相乘,就等价于她们的封闭形式相乘。

例题

「国家集训队」整数的lqp拆分

https://www.luogu.com.cn/article/lh5ys4hl

Step1 化简递推式

\[\begin{aligned} Ans[0]&=1\\ Ans[i]&=\sum_{j=0}^nAns[i-j]\times f[j] \end{aligned} \]

这里的 \(Ans[0]=1\) 不是题目定义来的,而是为了服务于 \(Ans\) 的递推。

Step2 求通项公式

\(F\)\(Ans\) 的生成函数。

\[\begin{aligned} G(x)&=1+\sum_{i=1}^xAns[i]x^i \end{aligned} \]

\(Ans\) 的递推式代入,有:

\[G(x)=1+\sum_{i=1}^x\left(\sum_{j=0}^iAns[i-j]\times f[j]\right)x^i \]

发现后面一坨都是卷积,然后:

\[\begin{aligned} G(x)&=1+G(x)\cdot F(x)\\ &=\dfrac 1{1-F(x)}=\dfrac{1-x−x^2}{1-2x+x^2}=1-\dfrac x{x^2+2x-1}\\ \end{aligned} \]

下考虑如何展开 \(\dfrac x{x^2+2x-1}\)

\(x_1,x_2\) 为方程 \(x^2+2x-1\) 的两根,不难得到 \(x_{1,2}=-1\pm \sqrt2\)

则有:

\[\begin{aligned} \frac x{x^2+2x-1}&=\frac x{x_1-x_2}\left(\frac 1{x-x_1}-\frac1{x-x_2}\right)\\ &=\color{lightgray}{\dfrac1{x_1-x_2}\left(\dfrac 1{1-x_1/x}-\dfrac1{1-x_2/x}\right)}&\text{【我们要的 } x\text{ 应该在分子上】}\\ &=\frac x{x_1-x_2}\left(\frac1{x_2}\frac1{1-x/{x_2}}-\frac1{x_1}\frac1{1-x/{x_1}}\right)\\ &=\frac x{x_1-x_2}\left(\frac1{x_2}\sum_{i=0}^{+\infty}\left(\frac{x}{x_2}\right)^i-\frac1{x_1}\sum_{i=0}^{+\infty}\left(\frac{x}{x_1}\right)^i\right)\\ &=\frac 1{x_1-x_2}\left(\sum_{i=0}^{+\infty}\left(\frac{x}{x_2}\right)^{i+1}-\sum_{i=0}^{+\infty}\left(\frac{x}{x_1}\right)^{i+1}\right)\\ \end{aligned} \]

一开始那个 \(1\) 是常数项,跟 \(n\) 项系数无关。故而:

\[[x^n]G(x)=-\left([x^n]\right) \]

posted @ 2024-03-25 22:30  CloudWings  阅读(49)  评论(0编辑  收藏  举报