《组合数学》学习笔记
1.2 一一对应
定理 1-1 (Cayley 定理)
完全图 \(K_n\) 有 \(n^{n-2}\) 种生成树。
书中给出的证明方式(构造 \(b_{1\dots (n-2)}\))实际上是 Prufer 序列。
1.4~1.6 排列组合的变种
圆周排列
从 \(n\) 个中选 \(k\) 个在圆周上进行排列,方案数以 \(Q(n,k)\) 表示。
根据定义可得 \(Q(n,k)=\dfrac{A(n,k)}{k}\)。
可重组合
在 \(n\) 个元素中取 \(r\) 个,可以重复取,方案数为 \(\dbinom{n+r-1}{r}\)。
证明
等价于在 \(\{1,2,\dots,n\}\) 中取 \(r\) 个可以重复的元素 \((a_1,a_2,\dots,a_r)\),其中 \(a_1\le a_2\le \dots \le a_r\)。
将 \(a_i\gets a_i+i-1\),那么它就转换成了从 \(\{1,2,\dots,n+r-1\}\) 中选择 \((a_1,a_2,\dots,a_r)\) 且 \(a_1<a_2<\dots<a_n\) 的 \(r\) 元组个数,即为 \(\dbinom{n+r-1}{r}\)。
反之亦然。
不相邻的组合
在 \(A=\{1,2,\dots,n\}\)中取 \(r\) 个不相邻元素的方案数为 \(\dbinom{n-r+1}{r}\)。
证明
等价于在 \(A\) 中取 \(r\) 元组 \((a_1,a_2,\dots,a_r)\) 且 \(a_1<a_2-1,a_2<a_3-1,\dots,a_{r-1}<a_r-1\) 的个数。
将 \(a_i\gets a_i-i+1\) 即可。
反之亦然。
线性方程组的解数
线性方程 \(x_1+\dots+x_n=b\) 的非负整数解的个数为 \(\dbinom{n+b-1}{b}\)。
可重组合的证明
可以看作 \(n\) 个有区别的盒子内放 \(b\) 个无区别的球,允许一个盒子内放多个球,即为 \(\dbinom{n+b-1}{b}\)。
隔板法的证明
也可以看作 \((b+1)\) 个位置里放入 \((n-1)\) 个隔板,且允许一个位置放多个隔板。于是它的方案数也是 \(\dbinom{n+b-1}{b}\)。
1.7 组合意义
例 1-33
求证:\(\dbinom{n+r+1}{r}=\dbinom{n+r}{r}+\dbinom{n+r-1}{r-1}+\dots+\dbinom{n+1}{1}+\dbinom{n}{0}\)。
代数推导
组合意义
我们考虑一个原点在 \((0,0)\) 的网格。左式即为 \((0,0)\to (n+1,r)\) 的路径条数。那么,从第 \(n\) 行到第 \((n+1)\) 行,显然有 \(r\) 种情况:经过 \((n,r),(n,r-1),\dots,(n,0)\),且从这些点到 \((n+1,r)\) 的路径是唯一的。于是对于每个中间点计算从 \((0,0)\) 到它的路径条数即可。
例 1-35
求证:\(\dbinom{n}{0}+\dbinom{n}{1}+\dbinom{n}{2}+\dots+\dbinom{n}{n}=2^n\)。
代数推导
将 \(\begin{cases}x=1 \\ y=1\end{cases}\) 代入二项式定理 \((x+y)^n\) 即可。
组合意义
考虑一个网格,其中有一条 \((0,n)\leftrightarrow (n,0)\) 的线段。可以发现,这条线段上各点到 \((0,0)\) 的曼哈顿距离相同,都为 \(n\)。所以相当于一共要走 \(n\) 步,每步可以向上或向右走,方案数为 \(2^n\)。
另一种计算方法是,分别统计线段上 \(n\) 个点的方案数,即 \(\dbinom{n}{0}+\dbinom{n}{1}+\dbinom{n}{2}+\dots+\dbinom{n}{n}\)。
两者相等,证毕。
例 1-37
求证:\(\dbinom{m+n}{r}=\dbinom{m}{0}\dbinom{n}{r}+\dbinom{m}{1}\dbinom{n}{r-1}+\dots+\dbinom{m}{r}\dbinom{n}{0},r\le \min(n,m)\)。
组合意义一
考虑两个集合 \(A,B\),\(|A|=m,|B|=n\),我们要从 \(A,B\) 中共取出 \(r\) 个元素,即 \(\dbinom{m+n}{r}\)。
那么一共有 \(r\) 种取法:\(A\) 中取 \(0\dots r\) 个,\(B\) 中取 \(r\dots 0\) 个。对于每种情况,表示一下即可。
组合意义二
考虑一个网格,\(\dbinom{m+n}{r}\) 即表示 \((0,0)\to (m+n-r,r)\) 的路径条数。
考虑一条 \((m-r,r)\leftrightarrow (m,0)\) 的线段。显然每条 \((0,0)\to (m+n-r,r)\) 的路径都需要经过这条线段上的某个点,设这个点为 \((m-x,x)\),那么 \((0,0)\to (m-x,x)\) 的条数为 \(\dbinom{m}{x}\),\((m-x,x)\to (m+n-r,r)\) 的条数为 \(\dbinom{(m+n-r)-(m-x)+(r-x)}{r-x}=\dbinom{n}{r-x}\)。根据乘法原理,得证。
1.8 应用举例
例 1-44
在一个网格中,问 \((0,0)\to (m,n)\) 且经过的所有点 \((a,b)\) 都要满足 \(a<b\) 的路径数。保证 \(m<n\)。
首先,第一步一定是 \((0,0)\to (0,1)\)。考虑 \((0,1)\to (m,n)\) 的路径中,有多少条路径是不合法的。
可以发现,一条不合法的路径一定触碰了直线 \(y=x\)。将这条不合法的路径做其关于 \(y=x\) 的对称路径,那么这个新路径就是一条 \((1,0)\to (m,n)\) 的路径。反之亦然,所以 \((0,1)\to (m,n)\) 的不合法路径与 \((1,0)\to (m,n)\) 的路径一一对应。
所以方案数为 \(\dbinom{m+n-1}{n-1}-\dbinom{m+n-1}{n}\)。
2.2 母函数
定义 2-1
对于序列 \(C_0,C_1,\dots\) 构造一函数 \(G(x)=C_0+C_1x+C_2x^2+\dots\) 称为序列 \(C_0,C_1,\dots\) 的母函数。
母函数是形式幂级数,计算时不考虑其是否收敛。
3.1 De Morgan 定理
集合 \(A,B\) 为集合 \(U\) 的子集,那么有 \(\overline{A\cup B}=\overline{A}\cap \overline{B}\),\(\overline{A \cap B}=\overline{A} \cup \overline{B}\)。
多元形式类似。
3.2 容斥原理
式子略,可以用数学归纳法来证。
3.3 容斥原理
例 3-10
推导“错排问题”的通项公式。
设 \(A_i\) 为第 \(i\) 位仍在原位的全排列形成的集合。
容易发现 \(|A_1|=|A_2|=\dots=|A_n|=(n-1)!\)。同时可得 \(|A_1\cap A_2|=|A_1\cap A_3|=\dots=|A_{n-1}\cap A_n|=(n-2)!\)。
\(\begin{aligned}|\overline{A_1}\cap \overline{A_2}\cap \dots \cap \overline{A_n}|&= n!-n(n-1)!+\dbinom{n}{2}(n-2)!-\dots+(-1)^n0! \\ &= n!-n!+\dfrac{n!}{2!}-\dfrac{n!}{3!}+\dots \pm 0! \\ &= n!(\dfrac{1}{2!}-\dfrac{1}{3!}+\dots \pm \dfrac{1}{n!}) \end{aligned}\)
错排问题还有生成函数解法。