Archipelago

Lec 15关系与计数原理

讲义完成更新于 2026-09-16

Lec 15 关系与计数原理

资料依据:课程视频与 transcript · Lecture notes

TL;DR

  • 二元关系是笛卡尔积的子集;函数是对每个输入恰好指定一个输出的特殊关系,单射与满射分别控制碰撞和覆盖。
  • 等价关系由自反、对称与传递性刻画,并把集合分割成不相交的等价类;偏序则用反对称性表示可比的先后或包含关系。
  • 双射法、加法法则和乘法法则通过构造或分解对象集计数;使用时要检查分类是否重叠及每步选择数是否恒定。

1. 关系(Relations)

定义: 一个关系 R⊆A×BR \subseteq A \times B 由以下部分构成:

  • 定义域 AA(任意集合)
  • 陪域 BB(任意集合)
  • 有序对的子集 R⊆A×BR \subseteq A \times B

记法:(a,b)∈R(a, b) \in R 也可写作 a,R,ba, R, b,或将 RR 视为谓词写作 R(a,b)R(a, b)。方向很重要:aa 关联到 bb 不代表 bb 关联到 aa。

关系可视为有向图:a→ba \to b 当且仅当 (a,b)∈R(a, b) \in R。

函数与全函数

定义: 若每个 a∈Aa \in A 至多关联到一个 b∈Bb \in B,则称 RR 为函数,记作 R:A→BR: A \to B。(每个 aa 至多一条出边。)

定义: 若每个 a∈Aa \in A 至少关联到一个 b∈Bb \in B,则称 RR 为全关系(Total)。(每个 aa 至少一条出边。)

全函数 = 恰好每个 a∈Aa \in A 有唯一一条出边,即 f(a)f(a) 对所有输入都有定义且唯一。

注意:f(x)=1/x2f(x) = 1/x^2 作为 R→R\mathbb{R} \to \mathbb{R} 的函数不是全函数(f(0)f(0) 无定义),但作为 R∖0→R\mathbb{R} \setminus {0} \to \mathbb{R} 的函数是全函数。定义域和陪域不同,性质也不同。

单射与满射

定义:

  • 单射(Injective):每个 b∈Bb \in B 至多有一个 aa 与之关联。(每个 bb 至多一条入边。)
  • 满射(Surjective):每个 b∈Bb \in B 至少有一个 aa 与之关联。(每个 bb 至少一条入边。)

定理: 若 A,BA, B 是有限集,R⊆A×BR \subseteq A \times B 是全单射,则 ∣A∣≤∣B∣|A| \leq |B|。

定理: 若 A,BA, B 是有限集,R⊆A×BR \subseteq A \times B 是满射函数,则 ∣A∣≥∣B∣|A| \geq |B|。

定义: 双射(Bijection) = 既单射又满射的全函数。

定理: 若 A,BA, B 是有限集且存在双射 R:A→BR: A \to B,则 ∣A∣=∣B∣|A| = |B|。


2. 单集合上的关系

当 A=BA = B 时,R⊆A×AR \subseteq A \times A 称为集合 AA 上的二元关系,等价于一个有向图。

常见例子:a=ba = b、a≡b(mod10)a \equiv b \pmod{10}、a≤ba \leq b、A⊆BA \subseteq B、a∣ba \mid b。

有向图 GG 的可达性关系 G∗G^*:a,G∗,ba, G^*, b 当且仅当存在从 aa 到 bb 的游走。

强连通关系 SS:a,S,ba, S, b 当且仅当 a,G∗,ba, G^*, b 且 b,G∗,ab, G^*, a。

2.1 等价关系

动机: 捕捉"相同"或"等价"的含义,如模运算中的同余、图中属于同一连通分量。

定义: 设 R⊆A×AR \subseteq A \times A:

  • 自反性(Reflexive):对所有 a∈Aa \in A,a,R,aa, R, a。
  • 对称性(Symmetric):a,R,b⇔b,R,aa, R, b \Leftrightarrow b, R, a。
  • 传递性(Transitive):a,R,ba, R, b 且 b,R,cb, R, c ⇒\Rightarrow a,R,ca, R, c。

若 RR 同时满足自反性、对称性、传递性,则称 RR 为等价关系。

定理: 等价关系将 AA 划分为若干等价类,每个 a∈Aa \in A 恰属于一个等价类;a,R,ba, R, b 成立当且仅当 aa 与 bb 属于同一等价类。

2.2 弱偏序(Weak Partial Order,WPO)

动机: 捕捉"≤\leq"的含义,如 A⊆BA \subseteq B、a∣ba \mid b、DAG 中的可达关系。

保留自反性和传递性,将对称性替换为:

定义:

  • 反对称性(Antisymmetric):若 a,R,ba, R, b 且 b,R,ab, R, a,则 a=ba = b。

若 RR 满足自反性、反对称性、传递性,则称 RR 为弱偏序。

定理: 有向图 GG 上的可达关系是 WPO,当且仅当 GG 是 DAG。

定义: WPO 中,若 a,R,ba, R, b 或 b,R,ab, R, a,则称 aa 与 bb 可比。

若每对元素都可比,则称 WPO 为线序(全序,Total Order)。

  • a≤ba \leq b 是全序;a∣ba \mid b 和 A⊆BA \subseteq B 不是(存在不可比的元素对)。

3. 计数

3.1 核心思路:用双射计数

牧羊人的寓言: 不会数数的牧羊人靠"放一只羊出去就放一颗石子进口袋,收回一只就取出一颗"来确认羊全回来了。这本质上是在羊和石子之间建立双射,从而保证数量相同。

核心原则: 通常通过建立双射来计数。

3.2 乘法法则(Product Rule)

∣A1×⋯×An∣=∣A1∣⋅ ⋯ ⋅∣An∣|A_1 \times \cdots \times A_n| = |A_1| \cdot\ \cdots\ \cdot |A_n|

例: 长度为 nn 的二进制串的数量为 2n2^n,因为该集合就是 0,1n{0,1}^n。

3.3 双射法则(Bijection Rule)

若存在双射 A→BA \to B,则 ∣A∣=∣B∣|A| = |B|。

例: 1,2,…,n{1, 2, \ldots, n} 的子集数为 2n2^n。

构造双射:子集 AA 映射到 nn 位二进制串,第 ii 位为 1 当且仅当 i∈Ai \in A。

3.4 加法法则(Sum Rule)

若 A1,…,AnA_1, \ldots, A_n 两两不相交,则 ∣A1∪⋯∪An∣=∣A1∣+⋯+∣An∣|A_1 \cup \cdots \cup A_n| = |A_1| + \cdots + |A_n|。

口诀: 若是"或"关系(从 A1A_1 或 A2A_2 中选),用加法;若是"且"关系(从 A1A_1 且 A2A_2 中选),用乘法。

例(密码计数): 密码长度为 6~8,首字母大写,其余字符为大小写字母或数字(共 62 种)。设 WkW_k 为长度 kk 的合法密码数,由乘法法则有 Wk=26⋅62k−1W_k = 26 \cdot 62^{k-1},故 ∣W∣=W6+W7+W8≈5.7×1015|W| = W_6 + W_7 + W_8 \approx 5.7 \times 10^{15}。

3.5 广义乘法法则(Generalized Product Rule)

设 AA 是长度为 kk 的序列的集合,其中:

  • 第 1 个位置有 n1n_1 种选择,
  • 无论第 1 步如何选,第 2 个位置有 n2n_2 种选择,
  • ……无论前 i−1i-1 步如何选,第 ii 个位置有 nin_i 种选择,

则 ∣A∣=n1⋅n2⋯nk|A| = n_1 \cdot n_2 \cdots n_k。

关键: 每步的选择数量不依赖之前的选择(具体内容可以变,但数量固定)。

例: 52 张牌的洗牌排列数 = 52×51×⋯×1=52!52 \times 51 \times \cdots \times 1 = 52!。

例: 8 位序列号中无重复数字的比例:无重复的数量为 10×9×⋯×310 \times 9 \times \cdots \times 3,总数量为 10810^8,比例约为 1.81.8%。

反例(不能用广义乘法法则): 求三位递增序列 abcabc(各位不同且 a<b<ca < b < c)的数量。第二位的选择数依赖第一位的值(a=7a=7 时只有 b=8b=8 一种,a=0a=0 时有 8 种),因此不满足广义乘法法则的条件。

我的理解

我的理解

计数问题的难点往往不是算式,而是为每个对象找到恰好一个生成过程。双射证明排除重复和遗漏,因而比“看起来有这么多种选择”更可靠。