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

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


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

前言:可以参考 生成函数 学习笔记

定义 2.3.1

数列 \(\{a_n\}_{n=0}^{\infty}\)普通生成函数是下面的形式级数 \[ f(x) = \sum_{n=0}^{\infty} a_nx^n \]

定义 2.3.2

数列 \(\{a_n\}_{n=0}^{\infty}\)指数型生成函数是下面的形式级数 \[ f(x) = \sum_{n=0}^{\infty}\frac{a_n}{n!}x^n \]

定义 2.3.3

数列 \(\{a_n\}_{n=1}^{\infty}\)Dirichlet 生成函数(狄利克雷生成函数)是下面的形式级数 \[ f(s) = \sum_{n=1}^{\infty} \frac{a_n}{n^s} \]

例 2.3.4

数列 \(\{1\}_{n=0}^{\infty}\) 的普通生成函数是 \[ \sum_{n=0}^{\infty}x^n = \frac{1}{1-x} \] 同时它的指数型生成函数是 \[ \sum_{n=0}^{\infty}\frac{x^n}{n!} = \mathrm{e}^x \] 而数列 \(\{1\}_{n=1}^{\infty}\) 的狄利克雷生成函数则是 \[ \sum_{n=1}^{\infty}\frac{1}{n^s} := \zeta(s) \] 这个函数就是 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]]\) ,定义 \[ f(x) + g(x) = \sum_{n=0}^{\infty}(a_n + b_n)x^n \]\[ f(x)g(x) = \sum_{n=0}^{\infty} c_nx^n \] 其中 \(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^{\prime}(x) = \sum_{n=1}^{\infty} na_nx^{n-1} = \sum_{n=0}^{\infty}(n + 1) a_{n + 1}x^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)) = \sum_{n=0}^{\infty} a_n(g(x))^n \] 当相关的复合存在,且 \(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}\) 的生成函数为 \[ \begin{aligned} f(x) &= \sum_{n=0}^{\infty} a_nx^n = 1 + \sum_{n=1}^{\infty}a_nx^n=1 + \sum_{n=0}^{\infty}2a_nx^{n + 1} \\[6pt]&= 1 + 2x\sum_{n=0}^{\infty}a_nx^n = 1 + 2xf(x) \end{aligned} \] 所以 \[ f(x) = \frac{1}{1 - 2x} = \sum_{n=0}^{\infty}(2x)^n = \sum_{n=0}^{\infty}2^nx^2 \] 比较系数得 \(a_n = 2^n\)

当然也可以用生成函数直接解决一些计数问题,如下 2.3.9 。

例 2.3.9

设有三种物体 \(a,b,c\) 。令 \(a_n\) 表示从中不重复地选取 \(n\) 种物体的方法数,

\(\{a_n\}_{n=0}^{\infty}\) 对应的普通生成函数可如下得出: \[ \begin{aligned} &((ax)^0 + (ax)^1)((bx)^0 + (bx)^1)((cx)^0 + (cx)^1) \\[6pt] &= (1 + ax)(1 + bx)(1 + cx) \\[6pt] &= 1 + (a + b + c)x + (ab + bc + ca)x^2 + abcx^3 \end{aligned} \] 上式中 \(x^i\) 的系数表明选取 \(i\) 种物体的选取方式。

例如 \(x^2\) 的系数为 \(ab + bc + ac\) 这三种方式。若仅仅求选取方法数,则令 \(a=b=c=1\) 即可。这时,有 \[ \{a_n\} \leftrightarrow (1 + x)^3 \] 这样我们就得到 \(a_n = \binom{3}{n}\) 。(二项式定理)

现在改变规则:设 \(a\) 可取 \(0,1\)\(2\) 次,\(b\) 可取 \(0\)\(1\) 次,\(c\) 可取偶数次。

\(b_n\) 表示选取 \(n\) 个物体的方法数,则 \(\{b_n\}_{n=0}^{\infty}\) 对应的普通生成函数即 \[ \begin{aligned} (1 + x + x^2)(1 + x)(1 + x^2 + x ^ 4 + \cdots) &= \frac{1 + x + x^2}{1 - x} \\[6pt] &= (1 + x + x^2)\sum_{n=0}^{\infty}x^n \\[6pt] &= 1 + 2x + 3\sum_{n=2}^{\infty}x^n \end{aligned} \] 从以上生成函数不难看出,当 \(n \ge 2\) 时,\(b_n = 3\)

接下来两个例子 2.3.10 和 2.3.12 可学习如何求出生成函数,并使之成为计数问题的有效工具

例 2.3.10

给定正整数 \(k\) ,令 \(h_n\) 表示方程 \[ x_1 + x_2 + \cdots x_k = n \] 的非负整数解的个数,我们已经知道 \[ h_n = \binom{n + k - 1}{n} \]\(\{h_n\}_{n=0}^{\infty}\) 对应的普通生成函数的闭形式(封闭形式)

 令 \(h(x)\)\(\{h_n\}_{n=0}^{\infty}\) 对应的普通生成函数,则有 \[ \begin{aligned} h(x) &= \underbrace{(1 + x + x^2 + \cdots)((1 + x + x^2 + \cdots))\cdots(1 + x + x^2 + \cdots)}_{\text{k 个}} \\[8pt]&=\left(\sum_{i_1=0}^{\infty}x^{i_1}\right)\left(\sum_{i_2=0}^{\infty}x^{i_2}\right)\cdots \left(\sum_{i_k=0}^{\infty}x^{i_k}\right) \\[8pt] &= \frac{1}{(x-k)^k} \end{aligned} \]

推论 2.3.11

\[ \left\{\binom{n + k - 1}{n}\right\}_{n=0}^{\infty} \leftrightarrow \frac{1}{(1 - x)^k} \]

例 2.3.12

从数量不限的苹果🍎、香蕉🍌、橘子🍊和梨🍐中,选取 \(n\) 个水果装成一袋,且

  • 选取的苹果数是偶数;
  • 选取的香蕉数是 \(5\) 的倍数;
  • 选取的橘子最多有 \(4\) 个;
  • 选取的梨最多有 \(1\) 个。

记这样的装法有 \(h_n\) 种,求 \(h_n\)

 令 \(g(x)\)\(\{h_n\}_{n=0}^{\infty}\) 的普通生成函数,则 \[ \begin{aligned} g(x) &= (1 + x ^ 2 + x ^ 4 + \cdots)(1 + x^5 + x^{10} + \cdots)(1 + x + x^2 + x^3 + x^4)(1 +x) \\[6pt] &= \frac{1}{1 - x^2}\cdot \frac{1}{1 - x^5} \cdot \frac{1 - x^5}{1 - x}(1 + x) \\[6pt] &= \frac{1}{(1 - x)^2} = \sum_{n=0}^{\infty}\binom{n+1}{n} x^n \end{aligned} \] 由推论 2.3.11 得到 \(h_n = n + 1\)

例 2.3.13

用生成函数法求解常系数线性齐次递推关系

 设 \(\{h_n\}_{n=0}^{\infty}\) 满足 \(k\) 阶常系数线性齐次递推关系 \[ h_n = a_1h_{n-1} + a_2h_{n-2} + \cdots + a_kh_{n-k},\quad a_j \ne 0,~ k \ge 1 \] \(\{h_n\}_{n=0}^{\infty}\) 的普通生成函数为 \(f(x) = \sum_{n=0}^{\infty}h_nx^n\) 。设 \[ k(x) = x^kg\left(\frac{1}{x}\right) = 1 - \sum_{i=1}^{k}a_ix^i \]\(c(x) = k(x)f(x)\)\(x^{k + r}(r \ge 0)\) 的系数为 \[ h_{k + r} - a_1h_{k+r-1} - a_2h_{k + r - 2} - \cdots - a_kh_r = 0 \]\(c(x)\) 是一个次数小于 \(k\) 的多项式。

设上面的递推关系的特征方程的互不相同根为 \(q_1,q_2,\cdots,q_t\) ,而 \(q_i\) 的重数为 \(s_i~(1 \le i \le t,\sum s_i = k)\) ,则 \[ \begin{aligned} g(x) &= x^k - a_1x^{k-1} - \cdots-a_{k-1}x-a_k \\[6pt] &= (x - q_1)^{s_1}(x - q_2)^{s_2}\cdots(x - q_t)^{s_t} \end{aligned} \]\[ k(x) = (1 - q_1x)^{s_1}(1 - q_2x)^{s_2}\cdots(1 - q_tx)^{s_t} \] 有理分式 \(f(x) = \frac{c(x)}{k(x)}\) 可以表示为部分分式 \[ f(x) = \sum_{i=1}^t\sum_{\ell = 1}^{s_i} \frac{\beta_{i\ell}}{(1 - q_ix)^{\ell}} \] 这里 \(\beta_{i\ell}\) 为适当的常数。由于 \[ \frac{\beta}{(1 - qx)^{\ell}} = \beta(1 - qx)^{\ell} = \beta \sum_{n=0}^{\infty}\binom{n + \ell - 1}{n}q^nx^n \] 所以 \[ \sum_{\ell = 1}^{s_i} \frac{\beta_{i\ell}}{(1 - q_ix)^{\ell}} = \sum_{\ell = 1}^{s_i}\beta_{i\ell}\sum_{n=0}^{\infty}\binom{n + l - 1}{n}q_i^nx^n = \sum_{n=0}^{\infty}(P_i(n)q_i^n)x^n \] 其中 \(P_i(n) = \sum_{\ell = 1}^{s_i} \beta_{i\ell}\binom{n + \ell - 1}{n}\) 为一个关于 \(n\) 的次数至多为 \(s_i - 1\) 的多项式。这样 \[ f(x) = \sum_{n=0}^{\infty}\left(\sum_{i=1}^tP_i(n)q_i^n\right)x^n \]\(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\) 的公式。

这部分有那么亿点复杂,所以不写了。公式是 \[ B_n = \frac{1}{\mathrm{e}}\sum_{k=0}^{\infty}\frac{k^n}{k!} \]

定义 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 !
评论
  目录