嘘~ 正在从服务器偷取页面 . . .

《组合数学》 §2.3 学习笔记(上)


《组合数学》 §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$ 是某个常数。


传送门:《组合数学》 §2.3 学习笔记(下)


文章作者: q779
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 q779 !
评论
  目录