本节对应原书 PDF 第 256–258 页。定义、定理、公式、例题及其原解答逐字取自原书;解释性文字为 AI 通俗化改写;标有「解读」的引用块为 AI 补充的额外直觉。
上一节已经看到生成函数在组合计数问题中的广泛应用,本节将进一步引入指数型生成函数,并讨论它在有序计数中的应用.
定义 10.7 设 {a_n} 为序列,称
G_e(x)=\sum_{n=0}^{\infty}a_n\frac{x^n}{n!}
为 {a_n} 的指数生成函数.
解读:普通生成函数把 a_n 挂在 x^n 上,指数生成函数则把 a_n 挂在 x^n/n! 上.多出的这个 n! 正是为「有序」准备的:排列计数天然带阶乘,除以 n! 之后乘法才能直接对应"先分成两组、各组内部排列"的拼装过程.
例 10.27 给定正整数 m,a_n=P(m,n),则 {a_n} 的指数生成函数为
G_e(x)=\sum_{n=0}^{\infty}P(m,n)\frac{x^n}{n!}=\sum_{n=0}^{\infty}\frac{m!}{n!(m-n)!}x^n=\sum_{n=0}^{m}\binom{m}{n}x^n=(1+x)^m
不难看出,(1+x)^m 既是集合组合数序列 {C(m,n)} 的普通生成函数,也是集合排列数序列 {P(m,n)} 的指数生成函数.
解读:同一个 (1+x)^m 同时扮演两个角色,是本节最该记住的一句话.取 x^n 的系数:按普通生成函数读出来是 C(m,n),按指数生成函数读出来(乘回 n!)是 P(m,n).
例 10.28 设 b_n=1,则 {b_n} 的指数生成函数为
G_e(x)=\sum_{n=0}^{\infty}\frac{x^n}{n!}=\mathrm{e}^x
与普通生成函数类似,指数生成函数具有下述重要的性质.
设数列 {a_n},{b_n} 的指数生成函数分别为 A_e(x) 和 B_e(x),则
A_e(x)\cdot B_e(x)=\sum_{n=0}^{\infty}c_n\frac{x^n}{n!},\quad 其中 c_n=\sum_{k=0}^{n}\binom{n}{k}a_kb_{n-k}
证明
\begin{aligned}
\sum_{n=0}^{\infty}c_n\frac{x^n}{n!} &= A_e(x)\cdot B_e(x)=\sum_{k=0}^{\infty}a_k\frac{x^k}{k!}cdotsum_{l=0}^{\infty}b_l\frac{x^l}{l!} \
&= \sum_{n=0}^{\infty}x^nsum_{k=0}^{n}\frac{a_k}{k!}\cdot\frac{b_{n-k}}{(n-k)!}=\sum_{n=0}^{\infty}\frac{x^n}{n!}\sum_{k=0}^{n}\frac{n!}{k!(n-k)!}a_kb_{n-k} \
&= \sum_{n=0}^{\infty}\frac{x^n}{n!}\sum_{k=0}^{n}\binom{n}{k}a_kb_{n-k}
\end{aligned}
因此 c_n=sumlimits_{k=0}^{n}\binom{n}{k}a_kb_{n-k}.
解读:c_n 里的 \binom{n}{k} 是把 n 个带标签的对象先选出 k 个交给 a、剩下 n-k 个交给 b 的方式数——这正是普通生成函数卷积里没有的那一项,也是指数生成函数能处理"带标签对象"的原因.
使用指数生成函数可以求解多重集的排列问题.
定理 10.8 设 S={n_1\cdot a_1,n_2\cdot a_2,\cdots,n_kcdot a_k} 为多重集,则 S 的 r 排列数的指数生成函数为
G_e(x)=f_{n_1}(x)f_{n_2}(x)\cdots f_{n_k}(x)
其中
f_{n_i}(x)=1+x+\frac{x^2}{2!}+\cdots+\frac{x^{n_i}}{n_i!}\quad i=1,2,\cdots,k
证明 考察上述指数生成函数展开式中 x^r 的项,它是由 k 个因式的乘积构成的,并具有下述形式:
\frac{x^{m_1}}{m_1!}\frac{x^{m_2}}{m_2!}\cdots\frac{x^{m_k}}{m_k!}
其中 \frac{x^{m_i}}{m_i!} 来自 f_{n_i}(x).注意到 m_1,m_2,\cdots,m_k 满足下述不定方程
\begin{aligned}
m_1+m_2+\cdots+m_k &= r \
0\leqslant m_ileqslant n_i, \quad i=1,2,\cdots,k
\end{aligned}
\tag{10.4}
即
\frac{x^{m_1+m_2+\cdots+m_k}}{m_1!m_2!\cdots m_k!}=\frac{x^r}{r!}\frac{r!}{m_1!m_2!\cdots m_k!}
因此
a_r=\sum\frac{r!}{m_1!m_2!\cdots m_k!}
其中求和是对满足方程(10.4)的一切非负整数解来求.一个非负整数解对应了 S 的一个子多重集 {m_1\cdot a_1,m_2\cdot a_2,\cdots,m_kcdot a_k},即 S 的一个 r 组合,而该组合的全排列数是 \frac{r!}{m_1!m_2!\cdots m_k!},因此 a_r 代表了 S 的所有 r 排列数.
解读:因式 f_{n_i}(x) 里第 m_i 项 \frac{x^{m_i}}{m_i!} 就是"第 i 种字母取 m_i 个"这一事件的记账;多个因式相乘后 x^r 的系数自动汇总了所有满足 m_1+\cdots+m_k=r 的取法,而 \frac{r!}{m_1!\cdots m_k!} 恰好是这些字母的排列数.
例 10.29 由 1,2,3,4 组成的 5 位数中,要求 1 出现不超过 2 次,但不能不出现,2 出现不超过 1 次,3 出现至多 3 次,4 出现偶数次.求这样的 5 位数个数.
解
G_e(x)=\left(\frac{x}{1!}+\frac{x^2}{2!}
\right)(1+x)\left(1+x+\frac{x^2}{2!}+\frac{x^3}{3!}
\right)\left(1+\frac{x^2}{2!}+\frac{x^4}{4!}
\right)
=\left(x+5\frac{x^2}{2!}+18\frac{x^3}{3!}+64\frac{x^4}{4!}+215\frac{x^5}{5!}+\cdots
\right)
N=215
解读:四个因式依次对应数字 1、2、3、4 的出现次数限制:1 的因式缺了常数项(不能不出现)、最高只到 \frac{x^2}{2!};2 的因式只有 1+x;4 的因式只留偶数次幂.所求是 5 位数个数,所以只取 \frac{x^5}{5!} 的系数再乘回 5!,即 215.
例 10.30 红、白、蓝涂色 1\times n 的方格,要求偶数个为白色,问有多少种方案?
解
G_e(x)=\left(1+\frac{x^2}{2!}+\cdots
\right)\left(1+x+\frac{x^2}{2!}+\cdots
\right)^2
=\frac{1}{2}(\mathrm{e}^x+\mathrm{e}^{-x})\mathrm{e}^{2x}
=\frac{1}{2}\mathrm{e}^{3x}+\frac{1}{2}\mathrm{e}^x
=\frac{1}{2}\sum_{n=0}^{\infty}3^n\frac{x^n}{n!}+\frac{1}{2}\sum_{n=0}^{\infty}\frac{x^n}{n!}
=\sum_{n=0}^{\infty}\frac{3^n+1}{2}\frac{x^n}{n!}
a_n=\frac{3^n+1}{2}
解读:把"偶数个白格"写成 \frac{1}{2}(\mathrm{e}^x+\mathrm{e}^{-x}),是指数生成函数处理奇偶约束的标准手法——它等于 \cosh x,只保留 x 的偶次幂项.红、蓝两色没有限制,各贡献一个 \mathrm{e}^x.