组合数学:划分与组成
组成
整数 n 的一个组成 (composition) 是将 n 写成一个(严格)正整数序列之和的一种方式。项的顺序不同的两个序列被视为不同的组成。
例 1 假设我想把 20 块巧克力分给 4 个孩子:Steven、Alice、Charlie 和 Denise。巧克力是完全相同的。每个孩子至少得到一块巧克力。分法有多少种?
定理 1 (k-组成) 将 n 划分为恰好 k 个部分的组成数量由二项式系数 {n-1\choose k-1} 给出。
例 2 n=5, k=3,
3 + 1 + 1, 2 + 2 + 1, 2 + 1 + 2,
1 + 3 + 1, 1 + 2 + 2, 1 + 1 + 3,
{5-1\choose 3-1}={4\choose 2}=6
证. 在 n 个 1 之间的 n-1 个间隔中放置加号或逗号:
\big(\, \overbrace{1\, \Box\, 1\, \Box\, \ldots\, \Box\, 1\, \Box\, 1}^n\, \big)
每种放置方式都唯一地产生 n 的一个组成。 \square
例 3 对于 n=5, 1+1,1,1+1 \rightarrow 2,1,2。
整数 n 的弱组成 (weak composition) 与 n 的组成类似,但允许序列中的项为零:它是将 n 写成一个非负整数序列之和的一种方式。
再次假设我想把 20 块巧克力分给 4 个孩子:Steven、Alice、Charlie 和 Denise。这一次,有的孩子可能一个也得不到。分法有多少种?
定理 2 弱 k-组成 的数量由下式给出: {n+k-1\choose k-1}.
例 4 n=5, k=3,
3 + 1 + 1, 2 + 2 + 1, 2 + 1 + 2, 1 + 3 + 1, 1 + 2 + 2, 1 + 1 + 3,
4 + 1 + 0, 0 + 4 + 1, 4 + 0 + 1, 1 + 4 + 0, 0 + 1 + 4, 1 + 0 + 4,
3 + 2 + 0, 0 + 3 + 2, 3 + 0 + 2, 2 + 3 + 0, 0 + 2 + 3, 2 + 0 + 3,
5 + 0 + 0, 0 + 5 + 0, 0 + 0 + 5,
{5+3-1\choose 3-1}={7\choose 2}=21
证. {n + k} 的 k-组成 与 n 的弱组成之间存在一一对应关系,规则如下:
[a + b + \cdots + c = n + k]
\Leftrightarrow [(a − 1) + (b − 1) + \cdots + (c − 1) = n].\square
定理 3 每个正整数 n 都有 2^{n−1} 个不同的组成。
例 5 n=5
5, 1 + 1 + 1 + 1 + 1, 4 + 1, 3 + 2, 2 + 3, 1 + 4,
3 + 1 + 1, 2 + 2 + 1, 2 + 1 + 2, 1 + 3 + 1, 1 + 2 + 2, 1 + 1 + 3,
2 + 1 + 1 + 1, 1 + 2 + 1 + 1, 1 + 1 + 2 + 1, 1 + 1 + 1 + 2,
证. \sum_{k=1}^n {n-1 \choose k-1} = 2^{n-1},\qquad\sum_{k=1}^n {n-1 \choose k-1} = \sum_{k=0}^{n-1} {n-1 \choose k}.\square
集合划分
集合划分 (Partition of a set) 是将集合的元素分组为非空子集,使得每个元素都包含在且仅包含在一个子集中。
例 6 集合 { 1, 2, 3 } 有 5 种划分:
{ {1}, {2}, {3} },或 1|2|3。
{ {1, 2}, {3} },或 12|3。
{ {1, 3}, {2} },或 13|2。
{ {1}, {2, 3} },或 1|23。
{ {1, 2, 3} },或 123。
定义 1 将一个 n 元集合划分为恰好 k 个非空部分的方法数称为第二类斯特林数 (Stirling number of the second kind),记作 S(n, k)。
例 7 设 n=4, k=2,集合划分为:
123|4, 124|3, 134|2, 234|1,
12|34, 13|24, 14|23。
如果 n<k,则 S(n, k) = 0。按照惯例,S(0,0) = 1。
如果 n > 1,我们有 S(n, 1) = S(n, n) = 1。
等式 S(n, n-1) = \binom{n}{2} 成立,因为将 [n] 划分为 n-1 个子集必须由一个二元子集和 n-2 个单元子集组成。
目前没有 S(n,k) 的闭合公式。
练习 1 S(6,4) 和 S(7,2),哪一个更大?
定理 4 对于所有正整数 k<n, S(n, k) = S(n-1,k-1) + k\cdot S(n-1, k).
证. 密切观察最大元素 n。
如果该元素形成一个单元子集,那么剩余的 n-1 个元素有 S(n-1, k-1) 种方式完成划分。
否则,剩余的 n-1 个元素必须以 S(n-1, k) 种方式之一形成包含 k 个子集的划分。然后我们可以将 n 放入该划分形成的任何一个 k 子集中,因此数量乘以 k。 \square
推论 1 所有满射函数 (surjective functions) f : [n] \rightarrow [k] 的数量为: k!\cdot S(n,k).
证. 这样的函数定义了 [n] 的一个划分。
我们将每个子集映射到元素 i\in[k]。
因此,恰好有 k 个子集,且有 k! 种不同的方式为子集贴标签。 \square
贝尔数 (Bell number) B_n 是大小为 n 的集合的所有不同划分的数量。
B_n=\sum_{k=0}^n S(n,k)
从之前的例子中可知,B_3=5。
B_1 = 1。我们定义 B_0=0。
定理 5 贝尔数满足以下递推关系:
B_{n+1}=\sum_{i=0}^n {n\choose i} B_i.
证. 假设元素 n + 1 所在的子集大小为 n-i+1。
那么有 \binom{n}{n-i}=\binom{n}{i} 种方式选择与其在同一个子集中的其他元素。
且有 B(i) 种方式对 [n + 1] 中剩余的 i 个元素进行划分。 \square
整数划分
正整数 n 的划分,也称为整数划分 (integer partition),是将 n 写成正整数之和的一种方式。
一个划分记作 (a_1,a_2,\cdots,a_k),其中 \sum_{k=1}^n {a_i}=n 且 (a_1\geq a_2\geq\cdots\geq a_k)。
例 8 n=5
5, 4 + 1, 3 + 2, 3 + 1 + 1, 2 + 2 + 1
2 + 1 + 1 + 1, 1 + 1 + 1 + 1 + 1。
仅在加数顺序上不同的两个求和式被视为同一个划分。
例如,1 + 3 + 1 和 3 + 1 + 1 是同一个划分。
n 的所有划分的数量记作 p(n)。例如 p(5)=7。
将 n 划分为恰好 k 个部分的划分数量记作 p_k(n)。例如 p_2(5)=2。
p(n) 同样没有闭合公式。G. H. Hardy 和 Ramanujan 在 1918 年给出了 p(n) 的渐近表达式。
p(n) \sim \frac {1} {4n\sqrt3} \exp\left({\pi \sqrt {\frac{2n}{3}}}\right) \quad \text{当 } n\rightarrow \infty \text{ 时}。
有一种常用的图示方法来表示划分:费米图 (Ferrers diagrams),以 Norman Macleod Ferrers 的名字命名。
正数 14 的划分 6 + 4 + 3 + 1 可以用以下 Ferrers 图表示:
\begin{align*} &\boxdot\boxdot\boxdot\boxdot\boxdot\boxdot\\ &\boxdot\boxdot\boxdot\boxdot\quad\,\,\,\,\,\,\\ &\boxdot\boxdot\boxdot\qquad\,\,\,\,\,\,\\ &\boxdot\qquad\qquad\,\,\,\,\,\,\\ \end{align*}
如果我们关于划分 p 的 Ferrers 图的主对角线进行转置,我们得到另一个形状:p 的共轭划分 (conjugate partition)。
\begin{align*} &\boxdot\boxdot\boxdot\boxdot\\ &\boxdot\boxdot\boxdot\quad\\ &\boxdot\boxdot\boxdot\quad\\ &\boxdot\boxdot\qquad\\ &\boxdot\qquad\quad\\ &\boxdot\qquad\quad\\ \end{align*} 该划分是 (4,3,3,2,1,1)。
如果一个划分等于它的共轭划分,则称其为自共轭 (self-conjugate)。例如 (4,3,2,1) 和 (5,1,1,1,1) 都是自共轭的。
定理 6 将 n 划分为最多 k 个部分的划分数量等于将 n 划分为不大于 k 的部分的划分数量。
\begin{align*} &\boxdot\boxdot\boxdot\boxdot\boxdot\boxdot\\ &\boxdot\boxdot\boxdot\boxdot\quad\,\,\,\,\,\,\\ &\boxdot\boxdot\boxdot\qquad\,\,\,\,\,\,\\ &\boxdot\qquad\qquad\,\,\,\,\,\,\\ \end{align*}
第一个数量等于行数最多为 k 的 Ferrers 图数量。第二个数量等于列数最多为 k 的 Ferrers 图数量。
通过共轭变换可知它们是数量相等的。
定理 7 将 n 划分为互不相同的奇数部分的划分数量等于 n 的所有自共轭划分的数量。
例如,设 n=8。
(4,2,1,1) (3,3,2)
练习 2 尝试找到 n=8 的所有仅包含奇数部分的划分。
\begin{align*} &\boxtimes\boxtimes\boxtimes\boxtimes\boxtimes\boxtimes\\ &\boxtimes\boxdot\boxdot\boxdot\boxdot\boxdot\\ &\boxtimes\boxdot\boxplus\boxplus\qquad\\ &\boxtimes\boxdot\boxplus\qquad\quad\\ &\boxtimes\boxdot\qquad\qquad\\ &\boxtimes\boxdot\qquad\qquad\\ \end{align*}
\begin{align*} &\boxtimes\boxtimes\boxtimes\boxtimes\boxtimes\boxtimes\boxtimes\boxtimes\boxtimes\boxtimes\boxtimes\\ &\boxdot\boxdot\boxdot\boxdot\boxdot\boxdot\boxdot\boxdot\boxdot\qquad\\ &\boxplus\boxplus\boxplus\qquad\qquad\qquad\quad\,\,\,\,\,\\ \end{align*}
整数 n 的划分数量与集合 [n] 的划分数量之间存在联系。
集合划分 {1,2,3}, {5,4}, {6} 和 {1,2,4}, {6,5}, {3} 有一些共同点。
这两个划分的类型 (type) 都是 (3,2,1)。
另一个例子:{1,5,6}, {2,7}, {3,9}, {4,8}, {10} 的类型是 (3,2,2,2,1)。
定理 8 定理 设 a=(a_1,a_2,\cdots,a_k) 为整数 n 的一个划分,并设 m_i 为 a_i 的重数 (multiplicity)。那么类型为 a 的 [n] 的集合划分数量等于: P_a=\frac{\binom{n}{a_1,a_2,\cdots,a_k}}{\prod_{i\geq{1}}m_i!}
证. 对于所有 j\in[k],取 a_j 个颜色为 j 的球。
将它们线性排列的方法有 \binom{n}{a_1,a_2,\cdots,a_k} 种。
然而,通过这种方式构造的不同集合划分的数量并不一定有这么多。
因为有 m_i! 种方式可以将具有相同数量球 (a_i 个) 的 m_i 个颜色类互相置换。 \square
例 9 例如,这个过程创建了一个类型为 a 的集合划分。比如类型为 (3,2,2,2,1)。在 (3,2,2,2,1) 中有三个 2。2 的重数是 3。
3\rightarrow 红(R), 2\rightarrow 绿(G), 2\rightarrow 蓝(B), 2\rightarrow 白(W), 1\rightarrow 黄(Y)
\begin{align*} GRBYW GRWRB&\{2,7,9\}, \{1,6\}, \{3,10\}, \{5,8\},\{4\}\\ YGRGR WRBBW&\{3,5,7\}, \{2,4\}, \{8,9\}, \{5,10\},\{1\}\\ RBGWR WYRGB&\{1,5,8\}, \{3,9\}, \{2,10\}, \{4,6\},\{7\}\\ \end{align*}
\begin{align*} Y\overline{G}R\overline{G}R WR\widehat{B}\widehat{B}W&\{3,5,7\}, \{2,4\}, \{8,9\}, \{5,10\},\{1\}\\ Y\widehat{B}R\widehat{B}R WR\overline{G}\overline{G}W&\{3,5,7\}, \{8,9\}, \{2,4\}, \{5,10\},\{1\}\\ \end{align*}