《组合数学》 §2.3 学习笔记(上)
前言:可以参考 生成函数 学习笔记
定义 2.3.1
数列 $\{a_n\}_{n=0}^{\infty}$ 的普通生成函数是下面的形式级数
定义 2.3.2
数列 $\{a_n\}_{n=0}^{\infty}$ 的指数型生成函数是下面的形式级数
定义 2.3.3
数列 $\{a_n\}_{n=1}^{\infty}$ 的 Dirichlet 生成函数(狄利克雷生成函数)是下面的形式级数
例 2.3.4
数列 $\{1\}_{n=0}^{\infty}$ 的普通生成函数是
同时它的指数型生成函数是
而数列 $\{1\}_{n=1}^{\infty}$ 的狄利克雷生成函数则是
这个函数就是 Riemann-Zeta 函数。
注 2.3.5
上面几个公式中的 “$=$” 的意义是“形式收敛”。
从解析上讲,若级数 $A$ 与另一级数 $B$ 分别在某个区间上收敛到同一形式,
则 $A,B$ 必定为同一级数,从而可以通过级数 $B$ 的表达形式来找到 $A$ 。
因此我们一般无需考虑这些生成函数在何处收敛,而利用收敛到的闭形式(即和函数)的最终目的之一,
也是导出原始级数比较简单的表达形式,例如 $\ln(1 + x) = \sum_{n=1}^{\infty}\frac{(-1)^{n-1}}{n}x^n$ 。
注 2.3.6
可以定义形式级数上的运算。下面以普通生成函数为例加以说明。
若形式级数的系数在域 $F$ 中,也称为域 $F$ 上的形式级数。域 $F$ 上的所有形式级数组成的集合记为 $F[[x]]$ 。
对于形式级数 $f(x)=\sum_{n=0}^{\infty}a_nx^n,~g(x) = \sum_{n=0}^{\infty}b_nx^n \in F[[x]]$ ,定义
和
其中 $c_n = \sum_{k=0}^{n}a_kb_{n-k}~(n \ge 0)$ 。容易证明 $F[[x]]$ 在这样的加法和乘法下构成一个环。
进一步,对于 $f(x)=\sum_{n=0}^{\infty}a_nx^n$ ,定义
为 $f(x)$ 的形式微商或形式导数。
如果生成函数是有限项的级数,它对应的就是一个有限项的数列,
或者说自某一项后全为零的数列,这时形式级数就是一个多项式。
定义 2.3.7
若形式级数 $f(x) = \sum_{n=0}^{\infty}a_nx^n$ 是多项式,或形式级数 $g(x) = \sum_{n=0}^{\infty}b_nx^n$ 满足 $b_0=0$ ,
则可以定义 $f(x)$ 和 $g(x)$ 的复合
当相关的复合存在,且 $f(g(x))=g(f(x))=x$ 是,则称 $g(x)$ 为 $f(x)$ 的复合逆。
有时候,用 $[x^n]f(x)$ 表示 $f(x)$ 中 $x^n$ 的系数,用 $\{a_n\}_{n=0}^{\infty} \leftrightarrow f(x)$ 表示数列 $\{a_n\}_{n=0}^{\infty}$ 的生成函数是 $f(x)$ 。
如果不加注明,则此生成函数为普通生成函数。可用生成函数来解递推关系。
例 2.3.8
设 $n \ge 1,X_n = \{1,2,\cdots,n\}$ ,记 $a_n$ 为 $X_n$ 的子集个数,求 $a_n$ 。
这道题是 2.1.1,当时给出了 $a_n = 2a_{n-1} + [n = 0]$ ,负下标为 $0$ 。
解 显然 $\{a_n\}_{n=0}^{\infty}$ 的生成函数为
所以
比较系数得 $a_n = 2^n$ 。
当然也可以用生成函数直接解决一些计数问题,如下 2.3.9 。
例 2.3.9
设有三种物体 $a,b,c$ 。令 $a_n$ 表示从中不重复地选取 $n$ 种物体的方法数,
则 $\{a_n\}_{n=0}^{\infty}$ 对应的普通生成函数可如下得出:
上式中 $x^i$ 的系数表明选取 $i$ 种物体的选取方式。
例如 $x^2$ 的系数为 $ab + bc + ac$ 这三种方式。若仅仅求选取方法数,则令 $a=b=c=1$ 即可。这时,有
这样我们就得到 $a_n = \binom{3}{n}$ 。(二项式定理)
现在改变规则:设 $a$ 可取 $0,1$ 或 $2$ 次,$b$ 可取 $0$ 或 $1$ 次,$c$ 可取偶数次。
令 $b_n$ 表示选取 $n$ 个物体的方法数,则 $\{b_n\}_{n=0}^{\infty}$ 对应的普通生成函数即
从以上生成函数不难看出,当 $n \ge 2$ 时,$b_n = 3$ 。
接下来两个例子 2.3.10 和 2.3.12 可学习如何求出生成函数,并使之成为计数问题的有效工具
例 2.3.10
给定正整数 $k$ ,令 $h_n$ 表示方程
的非负整数解的个数,我们已经知道
求 $\{h_n\}_{n=0}^{\infty}$ 对应的普通生成函数的闭形式(封闭形式)
解 令 $h(x)$ 为 $\{h_n\}_{n=0}^{\infty}$ 对应的普通生成函数,则有
推论 2.3.11
例 2.3.12
从数量不限的苹果🍎、香蕉🍌、橘子🍊和梨🍐中,选取 $n$ 个水果装成一袋,且
- 选取的苹果数是偶数;
- 选取的香蕉数是 $5$ 的倍数;
- 选取的橘子最多有 $4$ 个;
- 选取的梨最多有 $1$ 个。
记这样的装法有 $h_n$ 种,求 $h_n$ 。
解 令 $g(x)$ 为 $\{h_n\}_{n=0}^{\infty}$ 的普通生成函数,则
由推论 2.3.11 得到 $h_n = n + 1$ 。
例 2.3.13
用生成函数法求解常系数线性齐次递推关系
解 设 $\{h_n\}_{n=0}^{\infty}$ 满足 $k$ 阶常系数线性齐次递推关系
$\{h_n\}_{n=0}^{\infty}$ 的普通生成函数为 $f(x) = \sum_{n=0}^{\infty}h_nx^n$ 。设
则 $c(x) = k(x)f(x)$ 中 $x^{k + r}(r \ge 0)$ 的系数为
即 $c(x)$ 是一个次数小于 $k$ 的多项式。
设上面的递推关系的特征方程的互不相同根为 $q_1,q_2,\cdots,q_t$ ,而 $q_i$ 的重数为 $s_i~(1 \le i \le t,\sum s_i = k)$ ,则
故
有理分式 $f(x) = \frac{c(x)}{k(x)}$ 可以表示为部分分式
这里 $\beta_{i\ell}$ 为适当的常数。由于
所以
其中 $P_i(n) = \sum_{\ell = 1}^{s_i} \beta_{i\ell}\binom{n + \ell - 1}{n}$ 为一个关于 $n$ 的次数至多为 $s_i - 1$ 的多项式。这样
故 $h_n = \sum_{i=1}^tP_i(n)q_i^n$ ,而 $P_i(n)$ 的系数由初始值 $h_0,h_1 \cdots, h_{k-1}$ 给出。
例 2.3.14 (Bell 数)
令 $B_n$ 表示 $[n]$ 上所有划分的个数,是找到计算 $B_n$ 的公式。
这部分有那么亿点复杂,所以不写了。公式是
定义 2.3.15
若形式级数 $f(x) = \sum_{n=0}^{\infty}a_nx^n$ 与 $g(x) = \sum_{n=0}^{\infty}b_nx^n$ 满足 $f(x)g(x)=1$ ,则称 $g(x)$ 为 $f(x)$ 的乘法逆。
性质 2.3.16
形式级数 $f(x) = \sum_{n=0}^{\infty}a_nx^n$ 有乘法逆当且仅当 $a_0 \ne 0$ 。证明略。
性质 2.3.17
设形式级数 $f(x) = \sum_{n=0}^{\infty} a_nx^n$ 与 $g(x) = \sum_{n=0}^{\infty}b_nx^n$ 互为复合逆,
并且 $a_0=0$ ,则有 $b_0=0$ 且 $a_1 \ne 0,\,b_1 \ne 0$ 。证明略。
事实 2.3.18
若形式级数 $f(x) = \sum_{n=0}^{\infty} a_nx^n$ 满足 $f^{\prime}(x) = 0$ ,则 $f(x)$ 是常数级数 $a_0$ 。
事实 2.3.19
若形式级数 $f(x) = \sum_{n=0}^{\infty} a_nx^n$ 满足 $f^{\prime}(x) = f(x)$ 则 $f(x) = c \mathrm{e}^x$ ,其中 $c$ 是某个常数。