组合数学:基本计数原理

作者

李 辉

发布于

2026年4月2日

组合数学

  • 组合数学 (Combinatorics) 是数学的一个分支,主要研究有限结构的计数及其相关性质。

  • 组合问题出现在纯数学的许多领域,如代数、概率论、拓扑和几何。

  • 与组合数学密切相关的最古老且最重要的领域之一是图论 (Graph Theory)。

  • 组合数学经常用于计算机科学,在算法分析中用于获取公式和估计。

  • 枚举组合数学 (Enumerative combinatorics) 是组合数学最经典的领域,主要集中在计算某些组合对象的数量。


组合原理

  • 加法原理 (Rule of sum)

  • 乘法原理 (Rule of product)

  • 数学归纳法 (Mathematical induction)

  • 鸽巢原理 (Pigeonhole principle)

  • 容斥原理 (Inclusion–exclusion principle)

  • 生成函数 (Generating function)

加法原理

例 1 Candy 今天穿着她的幸运衬衫,她需要在 4 条白色裙子、3 条黑色裙子和 2 条红色裙子中做出选择。

她这一天有多少种不同的裙子选择?

练习 1 以下不等式有多少个整数解:

-5 < x < 5\quad \text{ 或 }\quad 12 < x < 100?

乘法原理

例 2 Kate 正在决定穿什么。

她有以下颜色的衬衫:白色、蓝色和紫色。

她有以下颜色的裤子:黑色和灰色。

Kate 有多少种不同的套装选择(假设她选择一件衬衫和一条裤子)?

练习 2 800 有多少个正因数?


练习 3 有三个城市,分别记为 A, B, C。从 A 到 B 有 3 条路径;从 B 到 C 有 2 条路径;从 A 到 C 有 4 条路径。Bob 从 A 到 C 有多少种不同的走法?


数学归纳法

弱归纳法 (Weak induction):数学归纳法最常见的形式,在归纳步骤中需要证明:

\forall k(P(n)\to P(n+1))

强归纳法 (Strong induction):在假设 P(k) 对于所有小于 n + 1 的自然数 k 都成立的前提下,证明命题 P(n + 1) 成立。


图 1: 多边形的内角和为 (n–2)180。

马悖论 (Horse paradox)

所有的马都是同一种颜色的。

  • 如果“群体”中只有一匹马,显然该群体中的所有马颜色相同。

  • 假设 n 匹马总是同一种颜色。考虑一个由 n+1 匹马组成的群体。


首先,排除一匹马,只看剩下的 n 匹马;既然 n 匹马总是同一种颜色,这些马颜色都相同。

同样地,排除另一匹马,只看另外的 n 匹马。这些马也必须是同一种颜色。

  • 因此,如果 n 匹马颜色相同,那么 n+1 匹马也将颜色相同。

这个悖论由 Joel E. Cohen 在 1961 年的一篇讽刺文章中提出。


练习 4 对于所有正整数 n,[n](即 \{1,2,\cdots,n\})的所有子集数量为 2^n。

鸽巢原理

基本形式 (Basic version):如果将 n 个对象分配到 m 个位置,且 n > m,那么至少有一个位置会有至少两个对象。

广义形式 (Generalized version):设 n, m, r 为正整数,使得 n > rm。如果我们将 n 个相同的球放入 m 个相同的盒子中,那么至少有一个盒子中会放入至少 r + 1 个球。

例 3 在单位正方形内给出 10 个点。

那么其中有两个点,它们之间的距离小于 0.48;

且其中有三个点,可以被一个半径为 0.5 的圆盘覆盖。


图 2: 第一部分的证明
图 3: 第二部分的证明

练习 5 在序列 7, 77, 777, 7777, \cdots 中,存在一个能被 2003 整除的元素。

容斥原理

容斥原理 (Inclusion–exclusion principle) 是一种计数技巧,它推广了计算两个有限集合并集元素个数的常见方法。

|A\cup B|=|A|+|B|-|A\cap B|,

|A\cup B\cup C|=|A|+|B|+|C|-|A\cap B|-|A\cap C|-|B\cap C|+|A\cap B\cap C|.


图 4: 三个集合的韦恩图

\left|\bigcup _{i=1}^{n}A_{i}\right|=\sum _{i=1}^{n}|A_{i}|-\sum _{1\leqslant i<j\leqslant n}|A_{i}\cap A_{j}|+\sum _{1\leqslant i<j<k\leqslant n}|A_{i}\cap A_{j}\cap A_{k}|-\cdots +(-1)^{n-1}\left|A_{1}\cap \cdots \cap A_{n}\right|.

例 4 一个高中班级中有 15 名学生踢足球,18 名学生打篮球。5 名学生两项运动都参加。 有多少名学生至少参加这两项运动中的一项? 15+18-5

练习 6 在 [105](即 \{1,2,\cdots,105\})中,有多少个正整数包含因子 3、5 或 7?


一场派对有 n 位客人参加。

当客人到达时,他们把帽子放在同一个更衣室里。派对结束后发生了停电,所以每位客人都从更衣室随机拿走一顶帽子。当客人们回到街上时,他们惊讶地发现没有人拿回自己的帽子。

这种情况有多少种不同的发生方式?


错排 (Derangement)

假设 n 个人编号为 1,2,\cdots,n。同时有 n 顶帽子也编号为 1,2,\cdots,n。我们需要找到没有人拿到的帽子编号与自己编号相同的方法数。

设 A_i 为 [n] 的所有排列构成的集合,其中元素 i 位于第 i 个位置,换句话说,元素 i 是固定的。


例如,23541\in A_4。

答案与 \#(\bigcup _{i=1}^{n}A_{i}) 相关。

\#A_i=(n-1)!

集合 A_i\cap A_j 由元素 i 和 j 固定的排列组成,其余 n-2 个项可以自由排列,共有 (n-2)! 种方式。\#(A_i\cap A_j)=(n-2)!

其余部分我们晚点再讨论。