十二重计数法
「从若干类型里取几个」与「把若干个球放进若干个盒」是同一件事的两种说法:第 次取到哪个类型,就是第 个球进了哪个盒。换成球盒的说法之后,此前分散在各页的公式可以按三个维度排成一张表:球是否可辨、盒是否可辨、每盒的容量是否受限,交叉出十二格。这张表由 Rota 命名为十二重计数法(twelvefold way)。
1 · 球盒模型的坐标
一次放法就是一个函数 ,把第 个球送进第 号盒。三个维度都是对这个函数施加的约束或等同:
- 球可辨或不可辨。不可辨时 与 算同一种放法, 取遍球的重排。
- 盒可辨或不可辨。不可辨时 与 算同一种放法, 取遍盒的重排。
- 映射任意、单射(每盒至多一球)、满射(每盒至少一球)。
前两项各二值,第三项三值,。
2 · 十二格总表
| 球 | 盒 | 映射 | 方案数 | 本系列 |
|---|---|---|---|---|
| 可辨 | 可辨 | 任意 | 可重复选取 | |
| 可辨 | 可辨 | 单射 | 排列 | |
| 可辨 | 可辨 | 满射 | Stirling 数 | |
| 不可辨 | 可辨 | 任意 | 可重复选取 | |
| 不可辨 | 可辨 | 单射 | 组合 | |
| 不可辨 | 可辨 | 满射 | 隔板法,每盒先垫一球 | |
| 可辨 | 不可辨 | 任意 | Stirling 数 | |
| 可辨 | 不可辨 | 单射 | 只是一个判定 | |
| 可辨 | 不可辨 | 满射 | Stirling 数 | |
| 不可辨 | 不可辨 | 任意 | 整数分拆 | |
| 不可辨 | 不可辨 | 单射 | 只是一个判定 | |
| 不可辨 | 不可辨 | 满射 | 整数分拆 |
可重复选取 §2 的四种取样模型正好落在「盒可辨」两行的任意与单射四格上:类型是盒,取的第几次是球,放回与否对应映射是否被限成单射。
警示 · 两套记号的字母是对调的。取样模型里的 是类型数,在球盒模型里是盒数 ;取的个数 则是球数 。 与 是同一个公式的两种写法,直接套字母会得到另一格的答案。
3 · 盒的标号与不整除的商
盒有标号时可以逐盒决策,公式因而有乘积形式:每个球独立地挑一个盒, 个球相乘得 。去掉标号相当于在盒的重排下取轨道,若每条轨道都恰有 个成员,去标号就是一次除法。含空盒的放法破坏了这一点——两个空盒互换不改变放法,轨道随之缩到 ,其中 是空盒数。 时盒可辨的任意放法 27 种,盒不可辨 5 种, 连整数都不是。
满射那一列没有空盒,轨道大小恒为 , 与 干净地差一个 。其余各格没有这样的除法可用,只能改口用划分数 与分拆数 这类量来定义——它们要么按递推逐行推出,要么写成带交错符号的求和,都不是乘积形式的闭式。十二格里公式最短的四格与最难算的四格因此分居两侧。
注 · 退化格的口径按空函数取。 个球放进 个盒有 种放法(唯一的空函数,空虚地既是单射也是满射),十二格一律为 ; 个球放进 个盒无函数可言,十二格一律为 ; 个球放进 个盒时任意与单射为 、满射为 。
警示 · 闭式在
且
处会失灵。把十二格逐一与暴力枚举对照(枚举全部
再按可辨性归一化去重),
全覆盖共
个组合,只报出两处不符,且都落在同一个
上:球不可辨且盒可辨的任意格,公式
给
而枚举给
;同行的满射格,
给
而枚举也给
。根子在实现里 comb(n, k) 对
或
一律返回
,于是
与
都成了
。改的是公式一侧:
时直接返回
,枚举的归一化不动。
4 · 参考文献
- Twelvefold way. Wikipedia. 十二格的完整列表、各格的组合意义与等价说法。https://en.wikipedia.org/wiki/Twelvefold_way
- Stirling numbers of the second kind. Wikipedia. 的递推、显式求和与生成函数。https://en.wikipedia.org/wiki/Stirling_numbers_of_the_second_kind
- Partition (number theory). Wikipedia. 整数分拆与 的递推。https://en.wikipedia.org/wiki/Partition_(number_theory)
- Stanley, R. P. (2011). Enumerative Combinatorics, Volume 1 (2nd ed.). Cambridge University Press.