组合数学:排列与组合

作者

李 辉

发布于

2026年4月2日

排列与阶乘

将不同的对象按照线性顺序排列,且每个对象恰好使用一次,称为这些对象的排列 (Permutation)。

  • 第一个位置有 n 种选择。

  • 第二个位置有 n-1 种选择。

  • 第三个位置有 n-2 种选择。

  • \cdots\cdots

  • 最后一个位置只有 1 种选择。


图 1: 三种颜色球的排列。

n 个对象的所有排列的数量 n\cdot(n-1)\cdot(n-2)\cdots 2\cdot 1 称为 n 的阶乘 (Factorial),记作 n!。

定义 0!=1.

定理 1 一个 n 元集合的所有排列数为 n!。

斯特林公式 (Stirling’s formula)

n! \sim \sqrt{2\pi n}\left(\frac{n}{e}\right)^n

练习 1 一位园丁有 3 朵蓝色花、4 朵红色花和 5 朵白色花要种成一排。她有多少种不同的种植方式?


设 n, k, a_1, a_2, \cdots, a_k 为非负整数,满足 a_1 + a_2 + \cdots + a_k = n。考虑一个包含 n 个对象的多重集 (Multiset),其中有 a_i 个对象属于第 i 种类型(对于所有 i \in [k])。那么,将这些对象进行线性排列的方法数为:

\frac{n!}{a_1!a_2!\cdots a_k!}

字符串

接下来,我们从一组有限的符号(称为有限字母表 (alphabet))中构造字符串。

我们不要求每个符号出现的次数固定。

定理 2 在 n 元字母表上可以形成的 k 位字符串的数量为 n^k。

练习 2 在十进制系统中,有多少个 6 位正整数?


为了使 X 和 Y 之间的对应关系成为双射 (Bijection),必须满足以下四个性质:

  • X 的每个元素必须与 Y 的至少一个元素对应;

  • X 的元素不能与 Y 的多个元素对应;

  • Y 的每个元素必须与 X 的至少一个元素对应;

  • Y 的元素不能与 X 的多个元素对应。

满足性质 (1) 和 (2) 意味着该对应是一个以 X 为定义域 (Domain) 的函数 (Function)。

满足性质 (3) 的函数被称为“满射到 Y”,即满射 (Surjection)。


满足性质 (4) 的函数被称为“一一映射函数”,即单射 (Injection)。

例 1 一个 n 元集合的所有子集数量为 2^n。

设 B 是 [n] 的任意子集,令 f(B) 为一个字符串,其第 i 位为 1 当且仅当 i \in B,否则为 0。

后一个集合有 2^n 个元素。

假设 n=9。

B=\{1,3,5,6\}\,\Leftrightarrow\,f(B)='101011000'

B=\{2,5,7,9\}\,\Leftrightarrow\,f(B)='010010101'


定理 3 设 n 和 k 为正整数且 n > k。在 n 元字母表上,每个字母最多使用一次的 k 位字符串的数量为:

P(n,k)=n(n-1)\cdots(n-k+1)=\frac{n!}{(n-k)!}

这些对象也被称为 n 的 k-排列,或部分排列。

例 2 有 10 个不同颜色的盒子。Jack、Rose、Smith、Hilary 和 Jessica 每人从中选择一个盒子,共有多少种不同的选择方式?

P(10,5)=\frac{10!}{5!}

组合

n 元集合 S 的一个 k-组合 (k-element combination) 是 S 的一个包含 k 个元素的子集,其元素没有顺序。

例如,从一套牌中选出 5 张牌组成特定的手牌。

{n \choose k}=\frac{n(n-1)\cdots(n-k+1)}{k(k-1)\cdots 1}=\frac{n!}{(n-k)!k!}

定理 4 对于所有非负整数 k < n, {n \choose k}={n \choose n-k} 成立。且 {n \choose 0}={n \choose n}=1.


练习 3 一名工人 5 月份必须工作 6 天。

但是,他不允许连续两天工作。

他有多少种不同的方式选择这 6 天工作日?


练习 4 假设我们玩一个彩票游戏,从 [100] 中抽取 5 个数字,但抽出的数字会放回。

要赢得头奖,玩家投出的数字多重集必须与抽出的多重集相同(不计顺序)。

我们要买多少张彩票才能确保赢得头奖?

(5, 93, 66, 34, 66 与 66, 66, 34, 93, 5 相同。)


定理 5 元素均属于 [n] 的 k-元多重集 的数量为: {n+k-1 \choose k}

k-组合 也被称为二项式系数 (Binomial coefficients)。

二项式系数

定理 6 对于所有非负整数 n,

(x+y)^n =\sum_{k=0}^n {n \choose k} x^{n-k} y^k. 将 (x + y)^n 写成乘积形式: (x+y)(x+y)(x+y)\cdots(x+y). 展开式中的每一项对应于每次选择 x 或 y。二项式系数 {n \choose k} 可以解释为从 n 元集合中选择 k 个元素的方式数。


例 3 在下式中 xy^2 的系数:

\begin{gather} (x+y)^3 = (x+y)(x+y)(x+y) \\ = xxx + xxy + xyx + \boxed{xyy} + yxx + \boxed{yxy} + \boxed{yyx} + yyy \\ = x^3 + 3x^2y + \boxed{3xy^2} + y^3. \end{gather} \,

等于 \binom{3}{2}=3。


定理 7 设 n > 0,

\sum_{k=0}^n (-1)^k\binom n k = 0.

证. (1-1)^n =\sum_{k=0}^n {n \choose k} 1^{n-k} (-1)^k.\square


定理 8 \sum_{k=0}^n \binom n k = 2^n

证. (1+1)^n =\sum_{k=0}^n {n \choose k} 1^{n-k} 1^k.\square


递归公式 (递推公式)

\binom nk = \binom{n-1}{k-1} + \binom{n-1}k 对于所有整数 n,k : 1\le k\le n-1,初始值为:

\binom n0 = \binom nn = 1 \quad \text{对于所有整数 } n\ge0.

练习 5 试证明递推公式:

\binom nk = \binom{n-1}{k-1} + \binom{n-1}k.


递推公式 的组合证明。

左式是从 [n] 中选择 k 元子集的数量。

这样的子集 S 要么包含 n,要么不包含 n。

  • 如果包含 n,那么 S 的其余部分是 [n-1] 的一个 (k-1) 元子集,这由右式的第一部分计算。

  • 如果不包含 n,那么 S 是 [n-1] 的一个 k 元子集,这由右式的第二部分计算。


递推公式 也产生了杨辉三角 (Yanghui’s triangle):

\begin{array}{c} \{1\} \\ \{1,1\} \\ \{1,2,1\} \\ \{1,3,3,1\} \\ \{1,4,6,4,1\} \\ \{1,5,10,10,5,1\} \\ \{1,6,15,20,15,6,1\} \\ \{1,7,21,35,35,21,7,1\} \\ \end{array}

图 2: 原始的杨辉三角。

练习 6 试利用数学归纳法证明:

\sum_{m=k}^n \binom m k = \binom {n+1}{k+1}.


定理 9 朱世杰恒等式 (Hockey-stick identity) \sum_{m=k}^n \binom m k = \binom {n+1}{k+1}.

证. 组合证明。

右式计算 [n + 1] 的 (k+1) 元子集的数量。

  • 也就是说,在 [n+1] 的 (k+1) 元子集中,有 \binom nk 个子集的最大元素是 n+1。

  • 在 [n+1] 的 (k+1) 元子集中,有 \binom {k+i}k 个子集的最大元素是 k+i+1。 \square


练习 7 试证明:对于所有非负整数 n,

\sum_{k=0}^n k \binom n k = n 2^{n-1}.


定理 10 \sum_{k=0}^n k \binom n k = n 2^{n-1}.

证. 组合证明。

从 n 个人中选出一个委员会,然后从委员会中选出一名主席。

  • 左式:我们首先以 \binom nk 种方式选出一个 k 人委员会,然后以 k 种方式选出其主席。

  • 右式:我们首先以 n 种方式选出主席,然后从剩下的 n-1 个人中以 2^{n-1} 种方式选出一组子集作为普通的委员会成员。 \square


定理 11 范德蒙德恒等式 (Chu–Vandermonde identity) 对于任何复数值 m 和 n 以及任何非负整数 k,

\sum_{j=0}^k \binom m j \binom{n-m}{k-j} = \binom n k

证. 组合证明。

  • 右式:[n] 的所有 k 元子集。

  • 左式:我们可以先从 [m] 中以 \binom mj 种方式选出 j 个元素,然后从集合 \{m+1, m+2, \cdots , n\} 中以 \binom{n-m}{k-j} 种方式选出剩下的 k-j 个元素。 \square


定理 12 对于所有非负整数 k 和 n,且 k \leq \frac{n-1}{2},不等式 \binom{n}{k}\leq\binom{n}{k+1} 成立。此外,等号成立当且仅当 n = 2k + 1。

\frac{n!(\boxed{k+1})}{(k+1)!(n-k)!}\qquad\qquad\frac{n!(\boxed{n-k})}{(k+1)!(n-k)!}


推论 1 对于所有非负整数 k 和 n,且 k \geq \frac{n-1}{2},不等式 \binom{n}{k}\geq\binom{n}{k+1} 成立。此外,等号成立当且仅当 n = 2k + 1。

多项式系数

多项式系数 (Multinomial coefficients)

三项式 x + y + z 的三次方由下式给出:

(x+y+z)^3

= x^3 + y^3 + z^3 + 3 x^2 y + 3 x^2 z + 3 y^2 x

+ 3 y^2 z + 3 z^2 x + 3 z^2 y + 6 x y z.


二项式系数可以推广为多项式系数,定义为:

{n\choose a_1,a_2,\cdots,a_k} =\frac{n!}{a_1!a_2!\cdots a_k!}

其中 \sum_{i=1}^ka_i=n。

(x_1 + x_2 + \cdots + x_k)^n

= \sum_{a_1+a_2+\cdots+a_k=n} {n \choose a_1, a_2, \ldots, a_k} \prod_{1\le i\le k}x_{i}^{a_{i}},

k = 2 的情况即为二项式系数:

{n\choose a_1,a_2}={n\choose a_1, n-a_1}={n\choose a_1}= {n\choose a_2}.


定理 13 对于所有非负整数 n 和 a_1, a_2, \cdots, a_k,满足 \sum_{i=1}^ka_i=n。

{n \choose a_1, a_2, \ldots, a_k}={n \choose a_1}{n-a_1\choose a_2}\cdots{n-a_1-\cdots-a_{k-1}\choose a_k}

证. {n \choose a_1}{n-a_1\choose a_2}\cdots{n-a_1-\cdots-a_{k-1}\choose a_k}=

\frac{n!}{\boxed{(n-a_1)!}a_1!}\frac{\boxed{(n-a_1)!}}{\boxed{(n-a_1-a_2)!}a_2!}\frac{\boxed{(n-a_1-a_2)!}}{(n-a_1-a_2-a_3)!a_3!}\cdots\square