Files
handsomezhuzhu.github.io/docs/sop/notes/discrete-math-notes.md
2026-01-07 00:27:21 +08:00

604 lines
31 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 离散数学笔记
date: 2026-01-07 12:00:00
descriptionHTML: '<span style="color:var(--description-font-color);">离散数学学习笔记,涵盖数理逻辑、集合论与二元关系、组合数学以及图论核心知识点。</span>'
tags:
- 离散数学
- 笔记
sidebar: true
readingTime: true
hidden: false
recommend: true
---
## 第一章:数理逻辑
### 1.1 命题逻辑
#### 1.1.1 核心概念深度解析
- **命题**:必须是**陈述句**且具有**唯一真值**。
- *易错点*:悖论(如"我正在说谎")不是命题;含有未定变量的句子(如"$x+1=2$")是谓词而非命题。
- **原子命题与复合命题**
- 原子命题:不能再分解的命题。
- 复合命题:通过联结词组合而成。
#### 1.1.2 联结词与真值表 (详细版)
| 联结词 | 符号 | 英文 | 优先级 | 逻辑详解 | 常见语言表达 |
| :--- | :---: | :--- | :---: | :--- | :--- |
| **否定** | $\neg$ | NOT | 1 | 真变假,假变真 | "并不是..." |
| **合取** | $\land$ | AND | 2 | **仅当两者全真时为真** | "且", "虽然...但是...", "既...又..." |
| **析取** | $\lor$ | OR | 3 | **仅当两者全假时为假** | "或" (包含性或) |
| **蕴涵** | $\to$ | IMPLIES | 4 | **前真后假时为假,其余全真** | "若...则...", "只要...就...", "只有...才..." |
| **双蕴涵** | $\leftrightarrow$ | IFF | 5 | **同真同假时为真** | "当且仅当", "充分必要条件" |
##### 重点难点:蕴涵关系 ($P \to Q$) 的翻译
- **充分条件**"只要 $P$ 就 $Q$" $\Rightarrow P \to Q$
- **必要条件**"只有 $Q$ 才 $P$" $\Rightarrow P \to Q$ (注意:$P$ 是 $Q$ 的充分条件,或者理解为 $\neg Q \to \neg P$)
- **除非**"除非 $P$ 否则 $Q$" $\Rightarrow \neg P \to Q$ (即 $P \lor Q$)
#### 1.1.3 命题公式的分类 (Classifications)
*常考题型:判断给定公式属于哪一类。*
1. **永真式 (重言式, Tautology)**
- 在所有真值赋值下,结果均为**真** ($1$)。
- *例*$P \lor \neg P$
2. **矛盾式 (永假式, Contradiction)**
- 在所有真值赋值下,结果均为**假** ($0$)。
- *例*$P \land \neg P$
3. **可满足式 (Contingency)**
- **不是矛盾式**的公式(即至少有一种赋值为真)。
- *注意*:永真式也是可满足式的一种,但通常指"既非永真也非永假"的公式。
#### 1.1.4 逻辑等值式 (Laws of Logic)
*核心:用于化简命题公式。*
1. **双重否定律**$\neg\neg P \Leftrightarrow P$
2. **幂等律**$P \lor P \Leftrightarrow P$, $P \land P \Leftrightarrow P$
3. **交换律**$P \lor Q \Leftrightarrow Q \lor P$, $P \land Q \Leftrightarrow Q \land P$
4. **结合律**$(P \lor Q) \lor R \Leftrightarrow P \lor (Q \lor R)$
5. **分配律** (非常重要)
- $P \lor (Q \land R) \Leftrightarrow (P \lor Q) \land (P \lor R)$ (析取对合取的分配)
- $P \land (Q \lor R) \Leftrightarrow (P \land Q) \lor (P \land R)$ (合取对析取的分配)
6. **德·摩根律 (De Morgan's Laws)** (变号变词)
- $\neg(P \lor Q) \Leftrightarrow \neg P \land \neg Q$
- $\neg(P \land Q) \Leftrightarrow \neg P \lor \neg Q$
7. **吸收律** (合并同类项)
- $P \lor (P \land Q) \Leftrightarrow P$
- $P \land (P \lor Q) \Leftrightarrow P$
8. **蕴含等值式**$P \to Q \Leftrightarrow \neg P \lor Q$ (去箭头核心公式)
9. **等价等值式**$P \leftrightarrow Q \Leftrightarrow (P \to Q) \land (Q \to P)$
10. **假言易位** (逆否命题)$P \to Q \Leftrightarrow \neg Q \to \neg P$
11. **归谬律**$(P \to Q) \land (P \to \neg Q) \Leftrightarrow \neg P$
#### 1.1.4 范式 (Normal Forms)
##### 析取范式 (DNF) 与 合取范式 (CNF)
- **定义**
- DNF简单合取式的析取 ($\sum$)。例如:$(P \land Q) \lor (\neg P \land R)$
- CNF简单析取式的合取 ($\prod$)。例如:$(P \lor Q) \land (\neg P \lor R)$
- **主范式 (Principal NF)**
- **极小项 ($m_i$)**:包含所有变量的合取项,编码对应真值表中的行号。
- **极大项 ($M_i$)**:包含所有变量的析取项。
- **转换方法**
1. **真值表法**
- 主析取范式:取真值表中结果为 $T$ 的行对应的极小项之和。
- 主合取范式:取真值表中结果为 $F$ 的行对应的极大项之积。
2. **等值演算法**:利用双重否定、德摩根、分配律展开。
---
### 1.2 谓词逻辑 (Predicate Logic)
#### 1.2.1 基本要素
- **个体词**:常量 ($a, b$) 和 变量 ($x, y$)。
- **谓词**$P(x_1, \dots, x_n)$,表示个体之间的性质或关系。
- **量词**
- 全称量词 $\forall$ (For all)
- 存在量词 $\exists$ (Exists)
- **论域 (Universe)**:个体变元的取值范围。若未指定,通常指全总个体域。
#### 1.2.2 翻译技巧 (易错)
1. **"所有的 S 都是 P"**
- 正确:$\forall x (S(x) \to P(x))$
- *错误*$\forall x (S(x) \land P(x))$ (这意味着宇宙中万物既是S也是P)
2. **"有的 S 是 P"**
- 正确:$\exists x (S(x) \land P(x))$
- *错误*$\exists x (S(x) \to P(x))$ (这通常是恒真的,没有意义)
#### 1.2.3 谓词逻辑等值式
1. **量词否定律**
- $\neg \forall x P(x) \Leftrightarrow \exists x \neg P(x)$ (改变量词,否定谓词)
- $\neg \exists x P(x) \Leftrightarrow \forall x \neg P(x)$
2. **量词辖域扩展** (设 $Q$ 不含 $x$)
- $\forall x (P(x) \lor Q) \Leftrightarrow (\forall x P(x)) \lor Q$
- $\exists x (P(x) \land Q) \Leftrightarrow (\exists x P(x)) \land Q$
3. **量词分配律**
- $\forall x (P(x) \land Q(x)) \Leftrightarrow \forall x P(x) \land \forall x Q(x)$ (全称对合取可分配)
- $\exists x (P(x) \lor Q(x)) \Leftrightarrow \exists x P(x) \lor \exists x Q(x)$ (存在对析取可分配)
- *注意*$\forall$ 对 $\lor$ 不可分配,$\exists$ 对 $\land$ 不可分配!
#### 1.2.4 前束范式 (Prenex Normal Form)
**形式**$Q_1 x_1 Q_2 x_2 \dots Q_k x_k M$
- 所有量词都在最左边。
- $M$ 是不含量词的基式。
**化简步骤**
1. **消去蕴涵**:利用 $A \to B \Leftrightarrow \neg A \lor B$。
2. **否定内移**:利用德摩根律和量词否定律,将 $\neg$ 移到原子公式前。
3. **变元改名**:确保不同量词使用不同的变量名 (如 $\forall x P(x) \lor \exists x Q(x)$ 改为 $\forall x P(x) \lor \exists y Q(y)$)。
4. **量词左提**:利用量词辖域扩展规则将量词提到最前面。
---
### 1.3 推理理论 (Inference Theory)
#### 1.3.1 常用推理规则
1. **假言推理 (Modus Ponens)**: $P, P \to Q \Rightarrow Q$
2. **拒取式 (Modus Tollens)**: $\neg Q, P \to Q \Rightarrow \neg P$
3. **析取三段论**: $P \lor Q, \neg P \Rightarrow Q$
4. **假言三段论**: $P \to Q, Q \to R \Rightarrow P \to R$
5. **化简律**: $P \land Q \Rightarrow P$
6. **附加律**: $P \Rightarrow P \lor Q$
#### 1.3.2 谓词推理规则
1. **全称特指 (US)**: $\forall x P(x) \Rightarrow P(c)$ (任意 $\to$ 个体)
2. **全称推广 (UG)**: $P(x) \Rightarrow \forall x P(x)$ (任意个体 $\to$ 任意) *注意限制条件*
3. **存在特指 (ES)**: $\exists x P(x) \Rightarrow P(c)$ (存在 $\to$ 特指常量 $c$) *注意 $c$ 必须是新引入的*
4. **存在推广 (EG)**: $P(c) \Rightarrow \exists x P(x)$ (个体 $\to$ 存在)
#### 1.3.3 证明方法
1. **直接证明法**:从前提及其逻辑推论出发,推导出结论。
2. **附加前提证明法 (CP规则)**
- 若要证 $A \to B$,可将 $A$ 作为附加前提加入前提集,只需证出 $B$ 即可。
3. **反证法 (归谬法)**
- 将结论的否定 $\neg C$ 加入前提集,推导出矛盾 ($F$)。
## 第二章:集合论与二元关系
### 2.1 集合论
#### 2.1.1 基础运算
- **并 ($\displaystyle A \cup B$)**、**交 ($\displaystyle A \cap B$)**、**补 ($\displaystyle \bar{A}$)**、**差 ($\displaystyle A - B$)**。
- **对称差 ($\displaystyle A \oplus B$)**$\displaystyle A \oplus B = (A - B) \cup (B - A)$。
- 属于 A 或属于 B但不同时属于两者。
- 特性:$\displaystyle A \oplus A = \emptyset$, $\displaystyle A \oplus \emptyset = A$, $\displaystyle A \oplus B = B \oplus A$。
#### 2.1.2 集合恒等式证明技巧
1. **子集互证法**:证明 $\displaystyle A=B$ 即证 $\displaystyle A \subseteq B$ 且 $\displaystyle B \subseteq A$。
- 任取 $\displaystyle x \in A$,逻辑推导 $\displaystyle x \in B$。
2. **集合演算法**:利用集合恒等式(类似逻辑等值式)进行变形。
- $\displaystyle A - B = A \cap \bar{B}$ (最常用的变形)
- 德摩根律:$\displaystyle \overline{A \cup B} = \bar{A} \cap \bar{B}$
3. **成员表法/特征函数法**
- 列出元素属于各集合的所有 $\displaystyle 0/1$ 组合,验证结果是否一致。
#### 2.1.3 幂集与笛卡尔积
- **幂集** $\displaystyle P(A)$$\displaystyle A$ 的所有子集构成的集合。
- 若 $\displaystyle |A|=n$,则 $\displaystyle |P(A)| = 2^n$。
- *易错*$\displaystyle \emptyset \in P(A)$, $\displaystyle A \in P(A)$。
- **笛卡尔积** $\displaystyle A \times B$:有序对的集合。
- $\displaystyle |A \times B| = |A| \cdot |B|$。
- 不满足交换律:$\displaystyle A \times B \neq B \times A$ (除非 $\displaystyle A=B$ 或为空)。
### 2.2 二元关系
#### 2.2.1 关系的表示与基本性质
关系 $\displaystyle R$ 是 $\displaystyle A \times A$ 的子集。
- **表示法**:集合表达式、关系矩阵 $\displaystyle M_R$、关系图 $\displaystyle G_R$。
##### 五大基本性质 (必须熟练判断)
| 性质 | 定义 | 矩阵特征 | 图特征 |
| :--- | :--- | :--- | :--- |
| **自反性** | $\displaystyle \forall x, (x,x) \in R$ | 主对角线全 1 | 每个节点都有自环 |
| **反自反性** | $\displaystyle \forall x, (x,x) \notin R$ | 主对角线全 0 | 无自环 |
| **对称性** | $\displaystyle (x,y) \in R \to (y,x) \in R$ | 对称矩阵 ($\displaystyle M=M^T$) | 所有边双向 |
| **反对称性** | $\displaystyle (x,y) \in R \land (y,x) \in R \to x=y$ | $\displaystyle m_{ij}=1 \land i \ne j \Rightarrow m_{ji}=0$ | 无双向边 |
| **传递性** | $\displaystyle (x,y) \in R \land (y,z) \in R \to (x,z) \in R$ | $\displaystyle M^2 \le M$ (布尔乘) | 有路必达(形成捷径)|
#### 2.2.2 关系矩阵详解
**定义**:设 $\displaystyle A = \{a_1, a_2, \dots, a_n\}$,关系矩阵 $\displaystyle M_R$ 是一个 $\displaystyle n \times n$ 的 0-1 矩阵。
- 若 $\displaystyle (a_i, a_j) \in R$,则 $\displaystyle m_{ij} = 1$;否则 $\displaystyle m_{ij} = 0$。
##### 关系运算的矩阵表示
1. **逆关系**$\displaystyle M_{R^{-1}} = (M_R)^T$ (转置矩阵)。
2. **并集/交集**$\displaystyle M_{R \cup S} = M_R \lor M_S$, $\displaystyle M_{R \cap S} = M_R \land M_S$ (对应位置逻辑运算)。
3. **复合关系**$\displaystyle M_{S \circ R} = M_R \cdot M_S$ (布尔矩阵乘法)。
- *注意顺序*$\displaystyle S \circ R$ 表示先 $\displaystyle R$ 后 $\displaystyle S$,矩阵乘法也是 $\displaystyle M_R$ 在前。
- 布尔乘法规则:$\displaystyle c_{ij} = \bigvee_{k=1}^n (a_{ik} \land b_{kj})$。
4. **幂运算**$\displaystyle M_{R^n} = (M_R)^n$ (布尔乘幂)。
#### 2.2.3 关系性质的运算封闭性 (表 6.2)
| 运算 | 自反性 | 反自反性 | 对称性 | 反对称性 | 传递性 |
| :--- | :---: | :---: | :---: | :---: | :---: |
| **逆关系** $\displaystyle R^{-1}$ | 是 | 是 | 是 | 是 | 是 |
| **交** $\displaystyle R \cap S$ | 是 | 是 | 是 | 是 | 是 |
| **并** $\displaystyle R \cup S$ | 是 | 是 | 是 | 否 | 否 |
| **差** $\displaystyle R - S$ | 否 | 是 | 是 | 是 | 否 |
| **复合** $\displaystyle R \circ S$ | 是 | 否 | 否 | 否 | 否 |
> **注**:表中“是”表示该性质在运算下**一定**保持,“否”表示**不一定**保持。
#### 2.2.4 关系的闭包
- **自反闭包** $\displaystyle r(R) = R \cup I_A$ (矩阵主对角线置1)
- **对称闭包** $\displaystyle s(R) = R \cup R^{-1}$ (矩阵:$\displaystyle M \lor M^T$)
- **传递闭包** $\displaystyle t(R) = R \cup R^2 \cup \dots \cup R^n$ (连通性)
##### Warshall 算法 (计算传递闭包的核心)
用于在计算机中高效计算 $\displaystyle t(R)$。
- **输入**$\displaystyle n \times n$ 关系矩阵 $\displaystyle M$。
- **逻辑**
```text
for k from 1 to n:
for i from 1 to n:
for j from 1 to n:
M[i,j] = M[i,j] or (M[i,k] and M[k,j])
```
*直观理解*:第 $\displaystyle k$ 轮循环尝试以节点 $\displaystyle k$ 为中转站,如果 $\displaystyle i \to k$ 且 $\displaystyle k \to j$,则建立 $\displaystyle i \to j$ 的直达路径。
#### 2.2.5 等价关系与划分
- **定义**:满足 **自反、对称、传递** 的关系。
- **等价类** $\displaystyle [x]_R$:所有与 $\displaystyle x$ 有关系 $\displaystyle R$ 的元素集合。
- **划分**
- 集合 $\displaystyle A$ 被划分为若干个不相交的子集,其并集为 $\displaystyle A$。
- **定理**:等价关系与划分一一对应。等价类就是划分出的子集。
- *例*:整数集上的模 3 同余关系,划分为 $\displaystyle \{3k\}, \{3k+1\}, \{3k+2\}$ 三类。
#### 2.2.6 偏序关系详解
- **定义**:满足 **自反、反对称、传递** 的关系。符号 $\displaystyle \preceq$。
- **相关符号**
- $\displaystyle x \preceq y$$\displaystyle x$ 小于等于 $\displaystyle y$ (或 $\displaystyle x$ 排在 $\displaystyle y$ 前)。
- $\displaystyle x \prec y$$\displaystyle x \preceq y \land x \ne y$。
- **可比**:若 $\displaystyle x \preceq y$ 或 $\displaystyle y \preceq x$,则称 $\displaystyle x, y$ 可比。
- **不可比**:若既不 $\displaystyle x \preceq y$ 也不 $\displaystyle y \preceq x$,则称 $\displaystyle x, y$ 不可比。
- **覆盖关系**
- 若 $\displaystyle x \prec y$ 且不存在 $\displaystyle z$ 使得 $\displaystyle x \prec z \prec y$,则称 $\displaystyle y$ 覆盖 $\displaystyle x$。
- **哈斯图**即是基于覆盖关系绘制的简化图。
##### 哈斯图画法步骤
1. 画出覆盖关系(即去掉所有自环和传递边)。
2. 若 $\displaystyle y$ 覆盖 $\displaystyle x$,则将 $\displaystyle y$ 画在 $\displaystyle x$ 上方并连线。
3. 方向默认向上,省略箭头。
##### 特殊元素 (重要考点)
设 $\displaystyle (A, \preceq)$ 为偏序集,$\displaystyle B \subseteq A$。
1. **极小元**$\displaystyle B$ 中没有比它更小的元素。$\displaystyle \neg \exists x \in B, x \prec a$。
2. **极大元**$\displaystyle B$ 中没有比它更大的元素。$\displaystyle \neg \exists x \in B, a \prec x$。
3. **最小元**$\displaystyle B$ 中所有元素都比它大。$\displaystyle \forall x \in B, a \preceq x$ (若存在则唯一)。
4. **最大元**$\displaystyle B$ 中所有元素都比它小。$\displaystyle \forall x \in B, x \preceq a$ (若存在则唯一)。
5. **下界**$\displaystyle A$ 中小于等于 $\displaystyle B$ 中所有元素的元素。$\displaystyle \forall x \in B, l \preceq x$。
6. **上界**$\displaystyle A$ 中大于等于 $\displaystyle B$ 中所有元素的元素。$\displaystyle \forall x \in B, x \preceq u$。
7. **下确界 (GLB/Infimum)**:最大下界。符号 $\displaystyle \inf B$ 或 $\displaystyle \wedge B$。
8. **上确界 (LUB/Supremum)**:最小上界。符号 $\displaystyle \sup B$ 或 $\displaystyle \lor B$。
##### 示例:整除关系
设 $\displaystyle A = \{1, 2, 3, 4, 6, 12\}$,关系为整除 ($\displaystyle |$)。
- 哈斯图层级:$\displaystyle 12$ 在顶;$\displaystyle 4, 6$ 在中;$\displaystyle 2, 3$ 在下;$\displaystyle 1$ 在底。
- $\displaystyle 2$ 和 $\displaystyle 3$ 不可比。
- 子集 $\displaystyle \{2, 3\}$ 的上界是 $\displaystyle 6, 12$,上确界是 $\displaystyle 6$。
- 子集 $\displaystyle \{2, 3\}$ 的下界是 $\displaystyle 1$,下确界是 $\displaystyle 1$。
##### 格
- **定义**:偏序集 $\displaystyle (L, \preceq)$ 中任意两个元素 $\displaystyle x, y$ 都有确定的上确界 ($\displaystyle x \lor y$) 和下确界 ($\displaystyle x \land y$)。
- **性质**:格可以看作代数系统,满足交换律、结合律、吸收律。
### 2.3 函数
#### 2.3.1 函数的性质
- **单射**
- 定义:$\displaystyle f(a) = f(b) \Rightarrow a = b$。
- 判别:陪域中每个元素最多被 1 个箭头指到。
- **满射**
- 定义:$\displaystyle \forall y \in B, \exists x \in A, f(x)=y$。
- 判别:陪域中每个元素至少被 1 个箭头指到 (值域=陪域)。
- **双射**:既单且满。
- 只有双射存在逆函数 $\displaystyle f^{-1}$。
#### 2.3.2 复合函数
- $\displaystyle (g \circ f)(x) = g(f(x))$。
- **性质**
- 若 $\displaystyle f, g$ 都是单射,则 $\displaystyle g \circ f$ 是单射。
- 若 $\displaystyle f, g$ 都是满射,则 $\displaystyle g \circ f$ 是满射。
- 若 $\displaystyle g \circ f$ 是单射 $\Rightarrow f$ 必为单射。
- 若 $\displaystyle g \circ f$ 是满射 $\Rightarrow g$ 必为满射。
#### 2.3.3 特殊函数与算法复杂度
1. **取整函数**
- **向下取整 (Floor)** $\lfloor x \rfloor$:小于等于 $x$ 的最大整数。
- **向上取整 (Ceiling)** $\lceil x \rceil$:大于等于 $x$ 的最小整数。
2. **算法复杂度 (Big-O Notation)**
- **定义**:设 $f, g$ 是从整数集或实数集到实数集的函数。若存在常数 $C$ 和 $k$,使得当 $x > k$ 时,$\lvert f(x) \rvert \le C \lvert g(x) \rvert$,则称 $f(x)$ 是 $O(g(x))$。
- **常见阶**$O(1) < O(\log n) < O(n) < O(n \log n) < O(n^2) < O(2^n) < O(n!)$。
- **判定技巧**
- 忽略系数$7n^3$ $O(n^3)$。
- 只看最高次项$n^2 + n + 1$ $O(n^2)$。
#### 2.3.4 典型考题:等价关系的证明
**题目** $R$ 是集合 $A$ 上的等价关系证明 $R \circ R$ 也是 $A$ 上的等价关系
**证明思路**
1. **自反性**
- $\because R$ 自反 $\therefore \forall a \in A, (a,a) \in R$。
- $(a,a) \in R \circ R$通过中间点 $a$ $R \circ R$ 自反
2. **对称性**
- 任取 $(x,y) \in R \circ R$ $\exists t \in A$ 使得 $(x,t) \in R \land (t,y) \in R$。
- $\because R$ 对称 $\therefore (t,x) \in R \land (y,t) \in R$。
- 交换顺序得 $(y,t) \in R \land (t,x) \in R \Rightarrow (y,x) \in R \circ R$。
3. **传递性**
- $\because R$ 传递 $R$ 是等价关系 $\therefore R \circ R = R$(等价关系的幂运算封闭性)。
- $R$ 自身具备传递性 $R \circ R$ 传递
- *(若题目要求严格分布证明需设 $(x,y) \in R^2, (y,z) \in R^2$ 推导 $(x,z) \in R^2$)*。
## 第三章:组合数学
### 3.0 基础数论概念 (补充)
- **完全数 (Perfect Number)**
- 一个正整数等于其所有**真因子**即除了自身以外的约数之和
- **$6 = 1 + 2 + 3$$28 = 1 + 2 + 4 + 7 + 14$。
- *考点*判断给定数字是否为完全数或计算其真因子之和
### 3.1 基础计数原理
#### 3.1.1 加法与乘法原理
- **加法原理 (分类)**$S = S_1 S_2 …$ (互不相交) $|S| = |S_1| + |S_2| …$
- **乘法原理 (分步)**步骤 1 $n_1$ 步骤 2 $n_2$ ... 则总数为 $n_1 \times n_2 …$
#### 3.1.2 排列与组合 (Notation: $C_n^r, P_n^r$)
| 模型 | 公式 | 典型场景 |
| :--- | :--- | :--- |
| **排列 (有序)** | $P_n^r = \frac{n!}{(n-r)!}$ | $n$ 人选 $r$ 人排队拍照 |
| **组合 (无序)** | $C_n^r = \frac{n!}{r!(n-r)!}$ | $n$ 人选 $r$ 人组队 |
| **可重排列** | $n^r$ | $r$ 位密码每位 $n$ 种选择 |
| **可重组合** | $C_{n+r-1}^r$ | $n$ 种口味冰淇淋选 $r$ (隔板法) |
#### 3.1.3 组合恒等式
1. **对称性**$C_n^r = C_n^{n-r}$
2. **帕斯卡公式**$C_n^k = C_{n-1}^k + C_{n-1}^{k-1}$
- *组合意义* $k$ 要么包含特定人 A ($C_{n-1}^{k-1}$)要么不包含 A ($C_{n-1}^k$)。
3. **二项式定理**$(x+y)^n = \sum_{k=0}^n C_n^k x^{n-k} y^k$
- 推论$\sum_{k=0}^n C_n^k = 2^n$ (所有子集个数)
- 推论$\sum_{k=0}^n (-1)^k C_n^k = 0$ (奇数个元素的子集数 = 偶数个元素的子集数)
4. **范德蒙恒等式**$C_{m+n}^r = \sum_{k=0}^r C_m^{k} C_n^{r-k}$
---
### 3.2 高级计数方法
#### 3.2.1 鸽巢原理 (Pigeonhole Principle)
- **原理**$N$ 个物体放入 $k$ 个盒子必有一个盒子至少有 $\lceil N/k \rceil$ 个物体
- **应用技巧**准确定义鸽子”(物体”(分类标准)。
- **任意 13 人中必有 2 人生肖相同 ($13/12 \to 2$)。
#### 3.2.2 容斥原理 (Inclusion-Exclusion)
$|A_1 A_2 A_n|$
- **公式**$\sum |A_i| - \sum |A_i A_j| + \sum |A_i A_j A_k| - …$
- **错排问题 ($D_n$)**$n$ 封信全部装错信封的方法数
- $D_n = n!(1 - \frac{1}{1!} + \frac{1}{2!} - + (-1)^n \frac{1}{n!})$
- 递推式$D_n = (n-1)(D_{n-1} + D_{n-2})$
#### 3.2.3 球盒模型 (Twelvefold Way 概览)
$n$ 个球放入 $k$ 个盒子
| (Label) | 盒子 (Label) | 限制 | 方案数 |
| :--- | :--- | :--- | :--- |
| 不同 | 不同 | | $k^n$ |
| 不同 | 不同 | $\le 1$ | $P_k^n$ |
| **相同** | **不同** | | $C_{n+k-1}^n$ (隔板法) |
| **相同** | **不同** | $\ge 1$ | $C_{n-1}^{k-1}$ (先各放1个) |
| 不同 | 相同 | | $S_2(n,k)$ (第二类斯特林数) |
---
### 3.3 递推关系 (Recurrence Relations)
#### 3.3.1 线性常系数齐次递推关系
形式$a_n + c_1 a_{n-1} + + c_k a_{n-k} = 0$
**求解步骤**
1. 写出**特征方程**$r^k + c_1 r^{k-1} + + c_k = 0$。
2. 求特征根 $r_1, r_2, …$。
3. 写出通解结构
- **无重根**$a_n = A_1 r_1^n + A_2 r_2^n + …$
- **有重根** ( $r_1$ $m$ 重根)$a_n = (A_1 + A_2 n + + A_m n^{m-1}) r_1^n + …$
4. 代入初值求解常数 $A_i$。
#### 3.3.2 生成函数 (Generating Functions)
- **定义**$G(x) = \sum_{n=0}^\infty a_n x^n$。
- **应用场景**
- 求解组合数 $(1+x)^n$ 的系数
- 求解不定方程 $x_1 + x_2 + x_3 = k$ 的非负整数解个数
- 构造多项式 $(1+x+x^2+…)^3$ $x^k$ 系数
---
### 3.4 典型考题:不定方程解计数
**题目** $x_1 + x_2 + x_3 = 15$ 的整数解个数满足 $x_1 1, 0 x_2 5, x_3 0$。
**解题思路**
1. **换元消下界** $y_1 = x_1 - 1 0$。
- 原方程变为 $(y_1+1) + x_2 + x_3 = 15 y_1 + x_2 + x_3 = 14$。
2. **全集计算**无上限限制时的非负整数解
- $\displaystyle N = C_{14+3-1}^{3-1} = C_{16}^2 = 120$。
3. **容斥处理上界**
- 坏条件 $P_1$$x_2 6$ (即原题 $x_2 > 5$)。
- 在坏条件 $P_1$ 下,令 $z_2 = x_2 - 6 ≥ 0$。
- 方程变为 $y_1 + (z_2+6) + x_3 = 14 ⇒ y_1 + z_2 + x_3 = 8$。
- $|P_1| = C_{8+3-1}^2 = C_{10}^2 = 45$。
4. **最终结果**$Ans = N - |P_1| = 120 - 45 = 75$。
---
### 3.5 典型考题:常系数齐次线性递推关系求解
**题目**:求解递推关系 $a_n = 7a_{n-1} - 16a_{n-2} + 12a_{n-3}$,初始条件为 $a_0 = 0, a_1 = 4, a_2 = 18$。
**解题步骤**
1. **构造特征方程**
将递推式移项得 $a_n - 7a_{n-1} + 16a_{n-2} - 12a_{n-3} = 0$。
对应的特征方程为:
$r^3 - 7r^2 + 16r - 12 = 0$
2. **求解特征根**
观察系数,尝试代入 $r=2$$8 - 28 + 32 - 12 = 0$,故 $(r-2)$ 是因子。
多项式除法分解得:
$(r-2)(r^2 - 5r + 6) = 0$
$(r-2)(r-2)(r-3) = 0$
解得特征根:$r_1 = 2$ (二重根)$r_2 = 3$ (单根)。
3. **写出通解结构**
对于二重根 $2$ 和单根 $3$,通解形式为:
$a_n = (C_1 + C_2 n) \cdot 2^n + C_3 \cdot 3^n$
4. **代入初始条件求解常数**
- 当 $n=0$ 时:$C_1 + C_3 = 0 \implies C_3 = -C_1$
- 当 $n=1$ 时:$(C_1 + C_2) \cdot 2 + 3C_3 = 4$
- 当 $n=2$ 时:$(C_1 + 2C_2) \cdot 4 + 9C_3 = 18$
将 $C_3 = -C_1$ 代入后两式:
- $2C_1 + 2C_2 - 3C_1 = 4 \implies -C_1 + 2C_2 = 4$
- $4C_1 + 8C_2 - 9C_1 = 18 \implies -5C_1 + 8C_2 = 18$
联立求解:
由第一式得 $C_1 = 2C_2 - 4$,代入第二式:
$-5(2C_2 - 4) + 8C_2 = 18$
$-10C_2 + 20 + 8C_2 = 18$
$-2C_2 = -2 \implies C_2 = 1$
回代得 $C_1 = 2(1) - 4 = -2$
$C_3 = -(-2) = 2$
5. **最终解**
$a_n = (-2 + n) \cdot 2^n + 2 \cdot 3^n$
或整理为:
$a_n = (n-2)2^n + 2 \cdot 3^n$
## 第四章:图论
### 4.1 图的基本概念
#### 4.1.1 定义与术语
- **图 $G=(V, E)$**$V$ 为顶点集,$E$ 为边集。
- **度 (Degree)**$\deg(v)$ 为关联的边数 (自环算 2 度)。
- **握手定理**$\sum_{v \in V} \deg(v) = 2|E|$。
- **推论**:奇度顶点的个数必为偶数。
- **子图**$V' \subseteq V, E' \subseteq E$。
- **补图**$\bar{G}$,顶点相同,边互补 (完全图 $K_n$ 减去原图的边)。
#### 4.1.2 图的连通性
- **路径 (Path)**$v_0, e_1, v_1, \dots, v_k$。
- **简单路径**:不经过重复边。
- **基本路径 (Elementary Path)**:不经过重复顶点。
- **连通图**:任意两点间均有路径。
- **割点 (Cut Vertex)**:删去该点及关联边,图分量增加。
- **割边 (Bridge)**:删去该边,图分量增加。
- **连通度**
- **点连通度 $\kappa(G)$**:使图不连通所需删除的最少顶点数。
- **边连通度 $\lambda(G)$**:使图不连通所需删除的最少边数。
- **不等式关系**$\kappa(G) \le \lambda(G) \le \delta(G)$ (最小度)。
#### 4.1.3 图的矩阵表示
- **邻接矩阵 $A(G)$**$n \times n$ 矩阵,$a_{ij}$ 表示 $v_i, v_j$ 间的边数。
- 性质:$A^k$ 的元素 $a_{ij}^{(k)}$ 表示从 $v_i$ 到 $v_j$ 长度为 $k$ 的路径条数。
- **关联矩阵 $M(G)$**:顶点与边的关系。
#### 4.1.4 图的同构 (Isomorphism)
判断 $G_1 \cong G_2$ 的必要条件 (若不满足则必不同构)
1. 顶点数、边数相同。
2. 度数列相同 (将所有点度数排序后一致)。
3. 连通分量数相同。
4. 对应长度的回路数相同 (如都有或都没有三角形)。
*充分性证明通常需要构造双射函数。*
### 4.2 特殊图类
#### 4.2.1 欧拉图 (Euler) 与 哈密顿图 (Hamilton)
| 特性 | 欧拉图 (Euler) | 哈密顿图 (Hamilton) |
| :--- | :--- | :--- |
| **定义** | 经过**每条边**恰好一次的回路 | 经过**每个顶点**恰好一次的回路 |
| **判定(充要)** | 连通 + **所有点度为偶数** | 无简单充要条件 |
| **判定(充分)** | - | (Dirac) $n \ge 3, \forall v, \deg(v) \ge n/2$ |
| **半图(路径)** | 连通 + **恰有 0 或 2 个奇度点** | - |
**哈密顿图常用判定方式 (充分/必要)**
- **必要条件**$\delta(G) \ge 2$;且无割点 (2-连通)。
- **Dirac 定理 (充分)**$n \ge 3, \delta(G) \ge n/2$。
- **Ore 定理 (充分)**$n \ge 3$ 且任意非邻接顶点 $u,v$ 满足 $\deg(u)+\deg(v) \ge n$。
#### 4.2.2 树 (Trees)
- **定义**:连通且无回路的无向图。
- **等价性质**
1. 无回路且 $E = V - 1$。
2. 连通且 $E = V - 1$。
3. 任意两点间存在**唯一**路径。
- **度数和**$\sum_{v \in V} \deg(v) = 2E = 2(V-1)$。
- **叶子与内部点关系**:设 $L$ 为叶子数,则 $L = 2 + \sum_{\deg(v)\ge 2}(\deg(v) - 2)$。
- **树中心 (Center)**
- 反复删除所有叶子,最终剩下 1 个或 2 个顶点,这些顶点即中心。
- 等价表述:中心是到其他顶点最大距离最小的顶点(们)。
- **二叉树常用关系**
- 满二叉树:若内部结点数为 $I$,叶子数为 $L$,则 $L = I + 1$。
- 完全二叉树:$n$ 个结点时高度 $h = \lfloor \log_2 n \rfloor + 1$。
- **最小生成树 (MST) 算法**
- **Kruskal** (加边法):按权值排序,从小到大选边,不构成回路就加入。
- **Prim** (加点法):从任意点开始,每次选离当前生成树集合最近的点加入。
#### 4.2.3 平面图 (Planar Graphs)
- **欧拉公式**$V - E + R = 2$ ($R$ 为面数,包含无限面)。
- **定理**:连通简单平面图 ($V \ge 3$) 满足 $E \le 3V - 6$。
- **证明要点**:每个面至少 3 条边,故 $3R \le 2E$,与欧拉公式联立得 $E \le 3V - 6$。
- **性质**:简单平面图 ($V \ge 3$) 满足 $E \le 3V - 6$。
- **重要证明:存在度数 $\le 5$ 的顶点**
- 假设所有顶点度数 $\deg(v) \ge 6$。
- 由握手定理:$2E = \sum \deg(v) \ge 6V \Rightarrow E \ge 3V$。
- 这与平面图性质 $E \le 3V - 6$ 矛盾。
- 故必然存在 $\deg(v) \le 5$ 的顶点。
- 推论:$K_5$ ($E=10, 3V-6=9$) 不是平面图。
- 推论:$K_{3,3}$ ($E=9, 3V-6=12$, 但它是二分图无三角形,需用 $E \le 2V-4$, $9 \not\le 8$) 不是平面图。
- **常用等价与应用**
- 连通简单平面图:$E \le 3V - 6 \iff V \ge (E+6)/3$。
- 平均度:$\overline{d} = 2E/V < 6$因此必存在度 $\le 5$ 的顶点
- 判否若某简单图满足 $E > 3V - 6$,则必非平面图。
- 若无三角形 (如二分图),改用 $E \le 2V - 4$。
- **库拉图斯基定理 (Kuratowski)**:图是平面图 $\iff$ 不含同胚于 $K_5$ 或 $K_{3,3}$ 的子图。
#### 4.2.4 二分图 (Bipartite Graphs)
- **定义**:顶点集可划分为 $X, Y$,且所有边都在 $X$ 与 $Y$ 之间。
- **判定**:图是二分图 $\iff$ 图中**没有奇数长度的回路**。
- **完全二分图**$K_{m,n}$$|X|=m, |Y|=n$,边数 $E = mn$。
- **度数与边数**$\sum_{x \in X}\deg(x)=\sum_{y \in Y}\deg(y)=|E|$。
- **平面图推论**:连通简单二分平面图 ($V \ge 3$) 满足 $E \le 2V - 4$。
- **二染色判定 (BFS/DFS)**
1. 对每个连通分量,任选起点染色为 0。
2. 进行 BFS/DFS对每条边 $(u,v)$ 要求 $color[u] \ne color[v]$。
3. 若遇到冲突 (已染且相同) 则非二分图;无冲突则是二分图。
- **匹配**Hall 定理 (相异代表系)。
### 4.3 核心算法逻辑
#### 4.3.1 最短路径 (Dijkstra)
*适用于非负权图。*
1. 初始化:$S=\{start\}$, $dist[start]=0$, 其他无穷大。
2. 循环:
- 在 $V-S$ 中找 $dist$ 最小的点 $u$。
- 加入 $S$。
- 松弛 (Relax) $u$ 的所有邻居 $v$:若 $dist[u] + w(u,v) < dist[v]$则更新
#### 4.3.2 图着色 (Graph Coloring)
- **点色数 $\chi(G)$**相邻顶点不同色所需的最少颜色数
- **布鲁克定理 (Brooks)** $G$ 不是奇环也不是完全图 $\chi(G) \le \Delta(G)$ (最大度)。
- **平面图四色定理**平面图 $\chi(G) \le 4$。
- **色多项式 $P_k(G)$** $k$ 种颜色染色的方案数
- 递推公式$P_k(G) = P_k(G-e) - P_k(G \cdot e)$
- $G-e$删边
- $G \cdot e$收缩边 (合并端点)。
#### 4.3.3 最优二叉树 (Huffman Coding)
*常考题型给定一组权值构造哈夫曼树并计算带权路径长度 (WPL)。*
1. **算法步骤**
- **初始化**将所有权值看作独立的单节点树森林 $F = \{T_1, T_2, \dots\}$。
- **循环**
1. $F$ 中选出**根节点权值最小**的两棵树 $T_1, T_2$。
2. 构造新树根权值为 $W(T_1) + W(T_2)$左右子树分别为 $T_1, T_2$。
3. $F$ 中删除 $T_1, T_2$加入新树
4. 重复直到 $F$ 中只剩一棵树
2. **带权路径长度 (WPL)**
- $WPL = \sum_{i=1}^n w_i \times l_i$
- $w_i$ $i$ 个叶子的权值
- $l_i$ $i$ 个叶子到根的路径长度边数)。
- *简便算法*WPL = 所有非叶子节点的权值之和。