生成函数

1.普通生成函数

基础知识

序列 \(a\) 的普通生成函数(OGF)为 \(F(x)=\sum a_ix^i\).

这是一些把数列转化为幂级数的例子:

\(\{1,a,a^2,a^3,...\}\to\sum_{i=0}^\infty a^ix^i=\dfrac{1}{1-ax}\)
\(\sum_{i=0}^\infty a^ix^{ik}=\dfrac{1}{1-ax^k}\).
\(\{C_n^0,-C_n^1,C_n^2,...,(-1)^nC_n^n\}\to (1-x)^n\)
\(\{C_n^0,C_{n+1}^1,..C_{n+k}^k,...\}\to \dfrac{1}{(1-x)^{n+1}}\).

以上就是我们目前已知提取幂级数系数的“桥梁”,下面我们的所有工作都是将手中的生成函数转化带到这些已知形式上来。

下面是一些基础运算:
\(F(x)\) 是序列 \(a\) 的生成函数,\(G(x)\)\(b\) 的生成函数:
\(F(x)\pm G(x)=\sum(a_i\pm b_i)x^i\)
\(F(x)G(x)=\sum x^n \sum_{i\le n}a_ib_{n-i}\).

斐波那契数列

\(F=\{0,1,1,2,3,...\}\)

\(F(x)=F_0+F_1x+F_2x^2+F_3x^3+F_4x^4...\).
\(xF(x)=0+F_0x+F_1x^2+F_2x^3+F_3x^4\)...
\(x^2F(x)=0+0+F_0x^2+F_1x^3+F_2x^4+F_3x^5\)
利用适当的错位,使 \(F(x)\) 表达自己,
注意到当 \(x\) 的次数 \(\ge 2\) 时,\(F(x)=xF(x)+x^2F(x)\).
算上 \(x<2\),那么 \(F(x)-xF(x)-x^2F(x)=x\)
\(F(x)=\dfrac{x}{1-x-x^2}\).

考虑求解一个待定系数的方程:
\(\dfrac{A}{1-ax}+\dfrac{B}{1-bx}=\dfrac{x}{1-x-x^2}\).
通分,解得 \(A=\dfrac{1}{\sqrt 5},B=-\dfrac{1}{\sqrt 5},a=\dfrac{1+\sqrt 5}{2},b=\dfrac{1-\sqrt 5}{2}\).
那么,展开 \(\dfrac{A}{1-ax},\dfrac{B}{1-bx}\)
变成 \(A(1+ax+a^2x^2+...+a^nx^n)+B(1+bx+b^2x^2+...b^nx^n)\)
提取 \(x^n\) 的系数,也就是 \(\dfrac{1}{\sqrt 5}((\dfrac{1+\sqrt 5}{2})^n-(\dfrac{1-\sqrt 5}{2})^n)\)

事实上,对于 \(\dfrac{P(x)}{Q(x)}\) 这类的展开式都可以用上述方法求出。
“当对分母进行因式分解但有重根时,每有一个重根就要多一个分式。”

牛顿二项式定理

重新定义 \(C(n,k)=\dfrac{n^\underline{k}}{k!}\),其中 \(n^\underline{k}\)\(n\) 向下乘 \(k\) 个。这里 \(n\) 是可以到复数域的。
\(\alpha\) 也取到复数域,满足 \((1+x)^\alpha=\sum_{n\ge 0}C(\alpha,n)x^n\).

特别地,当 \(\alpha\) 为负整数时,为了让表达更清晰,\(-a\)\(|\alpha|\) 表示。
\((1+x)^\alpha=\sum_{n\ge 0}(-1)^n \times C(|\alpha|+n-1,n)\times x^n\).
\((1-x)^\alpha=\sum_{n\ge 0}C(|\alpha|+n-1,n)\times x^n\).

卡特兰数

用这个递推式:\(H_n=\sum_{i=0}^{n-1} H_{i}H_{n-i-1}\),理解是枚举第一个为 \(0\) 的位置。
初始 \(H_0=1\).
其形式很像卷积。
\(H(x)=\sum_{n\ge 0} H_nx^n\)
\(=1+\sum_{n\ge 1}x^n\sum_{i=0}^{n-1}H_iH_{n-i-1}\).
\(=1+\sum_{n\ge 1}x\sum_{i=0}^{n-1}H_ix_i\times H_{n-i-1}x_{n-i-1}\)
\(=1+xH^2(x)\)
所以 \(H(x)=\dfrac{1\pm\sqrt{1-4x}}{2x}=\dfrac{2}{1\mp \sqrt{1-4x}}\).
带入 \(x=0\) 求出 \(H\) 的常数项,发现若取 \(+\) 号时满足条件。
那么 \(H(x)=\dfrac{2}{1+\sqrt{1-4x}}\).
牛顿二项式展开 \((1-4x)^{\frac{1}{2}}=\sum_{n\ge 0}C(n,\dfrac{1}{2})(-4x)^n\).
经过大量的变换,我们得到了 \(H(x)=\sum_{n\ge 0}C(2n,n)\dfrac{1}{n+1}x^n\).

2.指数生成函数

基础知识

序列 \(a\) 的指数生成函数(EGF)为 \(F(x)=\sum_{}\dfrac{a_i}{i!}x^i\).
\(F(x)\) 是序列 \(a\) 的 EGF,\(G(x)\)\(b\) 的 EGF:
\(F(x)G(x)=\sum x^n \sum_{i\le n}a_ib_{n-i}\dfrac{1}{i!(n-i)!}=\sum \dfrac{x^n}{n!} \sum_{i\le n}C_n^ia_ib_{n-i}\).

封闭形式是:\(\sum \dfrac{x^i}{i!}=e^x\)。“因为你将 \(e^x\)\(x=0\) 处泰勒展开就得到了它的无穷级数形式。”
其他地,\(\{1,p,p^2,p^3,...\}\) 的 EGF 为 \(\sum p^i\dfrac{x^i}{i!}=e^{px}\).

组合意义

对于 OGF 来说,\(n\) 个 OGF 相乘,每个 OGF 都代表一个集合选一个数出来,最后第 \(k\) 项系数代表最后选的数和为 \(k\) 的方案数。
对于 EGF 来说,我们发现,最后第 \(k\) 项系数是 OGF 的结果乘上一个多重集排列,也就是相当于 \(n\) 种颜色,最后排列出一个长度为 \(k\) 的方案数。也就是 \(k\) 个有标号元素划分成 \(n\) 个有标号集合的方案数。

圆排列

序列排列方案数的 EGF 是 \(p(x)=\sum n!\dfrac{x^n}{n!}=\sum x^n=\dfrac{1}{1-x}\).
圆排列的方案数的 EGF 是 \(q(x)=\sum_{n\ge 1} (n-1)! \dfrac{x^n}{n!}=\sum \dfrac{x^n}{n}=-\ln(1-x)=\ln(\dfrac{1}{1-x})\).
证明是因为 \(\ln'(p(x))=\dfrac{p'(x)}{p(x)}\).
\(p'(x)=1+2x+3x^2+...\),所以 \(\ln'(p(x))=p'(x)\times(1-x)=\sum (i+1)x^i-\sum ix^i=\sum x^i\)
积分回去 \(\ln(p(x))=\sum_{i\ge 1} \dfrac{x^i}{i}=q(x)\).
所以 \(\exp q(x)=p(x)\).

上面是数学意义,让我们来考虑组合意义。
注意到圆排列的实质是:令 \(1\sim n\) 形成若干集合,每个集合形成一个置换环的方案数。
一个集合形成一个置换环的方案数为圆排列数。
所以长度为 \(n\) 的序列排列方案数,等于 \(1\sim n\) 分成若干集合,每个集合圆排列方案数的积。
也就是 \(p(x)=1+\sum_{m\ge 1}\dfrac{q(x)^m}{m!}\),这恰好满足了 \(p(x)=\exp q(x)\).

posted @ 2024-04-11 21:28  GloriousCc  阅读(8)  评论(0编辑  收藏  举报