2.1 多重集与有序分拆Multisets and compositions
本页为译文 + 高中讲解合一:黑色正文为忠实翻译;彩色框(目标 / 例 / 分步推演)与配图为面向高中生的详解,逐步推演、举例、画图,不用比喻。
在本节中,我们将证明一些公式,用来计数:一个正整数能用多少种方式写成若干非负整数(或正整数)之和。这里求和项的次序是重要的。
2.1.1 弱有序分拆
一个四口之家——安妮(Anne)、本尼(Benny)、查尔斯(Charles)和丹妮丝(Denise)——坐在客厅里看电影。无巧不成书,电影放映期间家里的电话响了 10 次。更糟的是,电话答录机坏了,而这家人正在等一个重要的来电,于是每次电话响他们都去接。为了给自己打气,全家约定:电影结束时,每个人按自己接电话的次数,每接一次就得到一勺冰淇淋。这 10 勺冰淇淋当然会在电影一结束就被吃掉,但这 10 勺冰淇淋一共有多少种分配方式呢?
让我们先做两点观察。第一,四个人接电话的先后次序无关紧要,真正起作用的只是每个人各接了多少次电话。这听上去像是一个子集(subset)问题。然而——这是我们的第二点观察——集合 \(\{A,B,C,D\}\) 没有任何子集含有 \(10\) 个元素,所以我们必须使用一个不同的模型。我们要找的是由字母 \(A,B,C,D\) 组成、总共含 \(10\) 个字母的“收集物”,例如 \(ABABBBCCDD\)。
用这套术语,我们的任务就是计数四元素集合 \(S=\{A,B,C,D\}\) 上所有的 \(10\) 元素多重集。为了让任务更简单,请注意:这些多重集完全由四个元素各自出现的重数所决定。也就是说,如果我们知道某个多重集含有两个 \(A\)、一个 \(B\)、三个 \(C\)、四个 \(D\),那么我们就掌握了关于这个多重集的全部信息。确实,没有别的东西需要知道了,因为元素的次序无关紧要。
这就把我们的任务化简为:仅仅求出整数 \(10\) 能用多少种方式写成四个非负整数之和(这四个数就是 \(A,B,C,D\) 的重数)。换句话说,我们要求方程
\[a+b+c+d=10\]的非负整数解的个数。请注意,在这种语言下,求和项的次序是重要的。确实,解 \(2+3+1+4=10\) 对应的多重集含有两个 \(A\),而解 \(1+2+4+3=10\) 对应的多重集只含有一个 \(A\)——两者是不同的解,对应不同的多重集。
把“\(k\) 元素集合上的 \(n\) 元素多重集”与“将 \(n\) 表示成 \(k\) 个非负整数之和”相互对应起来,这一思想引出了一个重要的、有专门名称的概念。
上面的讨论说明:从“\(n\) 分成 \(k\) 部分的弱有序分拆”的集合,到“\(k\) 元素集合上的 \(n\) 元素多重集”的集合,存在一个自然的双射(bijection)。因此,我们不妨改去求 \(n\) 分成 \(k\) 部分的弱有序分拆的个数,而不必直接求 \(k\) 元素集合上 \(n\) 元素多重集的个数——两者个数相同。
这些对象(弱有序分拆)比 \([n]\) 的 \(k\) 元素子集要稍难计数一些,但枚举它们的公式同样是一个二项式系数(binomial coefficient)。
现在,我们按下面的办法来计数把 \(n\) 个球放入 \(k\) 个盒子的方式:把这 \(k\) 个盒子排成一行,使盒子上的编号从小到大排列,相邻的第 \(i\) 个与第 \(i+1\) 个盒子之间用一堵隔墙(wall)分开(见图 2.1)。
(说明:原文 PDF 在此处截断于图 2.1。以下为这一证明的自然续完,思想就是上面排好的“球与隔墙”——即组合学中著名的“隔板法 / 星与隔板”。)
这一行里总共有 \(n+(k-1)=n+k-1\) 个位置。一旦决定了哪 \(n\) 个位置放球(其余位置自动放隔墙),整个排列就定下来了;等价地,决定哪 \(k-1\) 个位置放隔墙也一样。因此排列的总数为 \[\binom{n+k-1}{n}=\binom{n+k-1}{k-1}.\] (两个二项式系数相等,是因为 \(\binom{m}{r}=\binom{m}{m-r}\),这里 \(m=n+k-1\)、\(m-n=k-1\)。)证毕。♦
把这条证明拆成最小的步子,便于看清它“为什么对”:
- 建模。把“给 \(A,B,C,D\) 各分多少”改述成“把 \(n\) 个相同的球放进 \(k\) 个编号盒子”——盒子 \(i\) 里的球数就是第 \(i\) 部分,这一步把抽象的分拆变成可以画出来的东西。
- 排成一行。把 \(k\) 个盒子按编号排成一行,盒与盒之间共有 \(k-1\) 道缝,于是用 \(k-1\) 堵隔墙把它们隔开。
- 去掉盒壁,只看球和墙。既然盒子已按固定次序排好,盒子本身就不必画了,只保留 \(n\) 个球和 \(k-1\) 堵隔墙排成一行;从左数,两堵相邻隔墙之间的球数就是一部分。
- 转成“选位置”。这一行共 \(n+k-1\) 个位置,从中选出 \(n\) 个位置放球(剩下的放隔墙)即完全确定一种排法,故个数为 \(\binom{n+k-1}{n}\)。
- 对称改写。由 \(\binom{m}{r}=\binom{m}{m-r}\) 得 \(\binom{n+k-1}{n}=\binom{n+k-1}{k-1}\),即“选隔墙位置”得到同一答案。
- 方程 \(x_1+x_2+x_3+x_4+x_5=8\) 有多少组非负整数解?
- \(\{A,B,C\}\) 上共有多少个 \(6\) 元素多重集?请同时用“多重集”和“弱有序分拆”两种语言解释你的答案。
- 把 \(7\) 个相同的球放进 \(3\) 个编号盒子,允许有盒子为空,共有多少种放法?若进一步要求每个盒子至少放一个球(即各部分均为正整数),又有多少种?(提示:先给每盒预放一个球。)
返回 全书目录