2021-06-18 17:54:03 +03:00
|
|
|
|
---
|
|
|
|
|
category: Algorithms & Data Structures
|
|
|
|
|
name: Set theory
|
|
|
|
|
contributors:
|
2024-05-14 14:23:32 +03:00
|
|
|
|
- ["Andrew Ryan Davis", "https://github.com/AndrewDavis1191"]
|
2021-06-18 18:09:36 +03:00
|
|
|
|
translators:
|
|
|
|
|
- ["Tianchen Xu", "https://github.com/lo0b0o"]
|
|
|
|
|
lang: zh-cn
|
2021-06-18 17:54:03 +03:00
|
|
|
|
---
|
2024-05-14 14:23:32 +03:00
|
|
|
|
|
2021-06-18 17:54:03 +03:00
|
|
|
|
集合论是数学的一个分支,研究集合、它们的运算和它们的性质。
|
|
|
|
|
|
|
|
|
|
* 集合由不重复的项组成。
|
|
|
|
|
|
|
|
|
|
## 基本符号
|
|
|
|
|
|
|
|
|
|
### 运算符
|
2024-05-14 14:23:32 +03:00
|
|
|
|
|
2021-06-18 17:54:03 +03:00
|
|
|
|
* 并运算符,`∪`,表示“或”;
|
|
|
|
|
* 交运算符,`∩`,表示“且”;
|
|
|
|
|
* 差运算符,`\`,表示“不包括”;
|
2021-08-08 08:09:40 +03:00
|
|
|
|
* 补运算符,`'`,表示补集;
|
2021-06-18 17:54:03 +03:00
|
|
|
|
* 叉积运算符,`×`,表示笛卡尔积。
|
|
|
|
|
|
|
|
|
|
### 限定词
|
2024-05-14 14:23:32 +03:00
|
|
|
|
|
2021-08-08 08:09:40 +03:00
|
|
|
|
* 冒号限定词,`:`,表示“使得”;
|
2021-06-18 17:54:03 +03:00
|
|
|
|
* 从属限定词,`∈`,表示“属于”;
|
2021-08-08 08:09:40 +03:00
|
|
|
|
* 子集限定词,`⊆`,表示“是……的子集”;
|
|
|
|
|
* 真子集限定词,`⊂`,表示“是……的真子集”。
|
2021-06-18 17:54:03 +03:00
|
|
|
|
|
2024-05-14 14:23:32 +03:00
|
|
|
|
### 重要的集合
|
|
|
|
|
|
2021-08-08 08:09:40 +03:00
|
|
|
|
* `∅`,空集,即不包含任何元素的集合;
|
2021-06-18 17:54:03 +03:00
|
|
|
|
* `ℕ`,自然数集;
|
|
|
|
|
* `ℤ`,整数集;
|
|
|
|
|
* `ℚ`,有理数集;
|
|
|
|
|
* `ℝ`,实数集。
|
|
|
|
|
|
|
|
|
|
关于以上集合,有如下几点需要注意:
|
2024-05-14 14:23:32 +03:00
|
|
|
|
|
2021-06-18 17:54:03 +03:00
|
|
|
|
1. 空集是其本身的子集(并且也是任何其他集合的子集),即便空集不包含任何项;
|
|
|
|
|
2. 数学家们对于零是否为自然数的看法通常并不统一,教科书一般会明确说明作者是否认为零是自然数。
|
|
|
|
|
|
|
|
|
|
### 基数
|
|
|
|
|
|
|
|
|
|
集合的基数,或者说大小,由该集合中的项目数量决定。基数运算符为 `|...|`。
|
|
|
|
|
|
|
|
|
|
例如,若 `S = { 1, 2, 4 }`,则 `|S| = 3`。
|
|
|
|
|
|
|
|
|
|
### 空集
|
2024-05-14 14:23:32 +03:00
|
|
|
|
|
2021-06-18 17:54:03 +03:00
|
|
|
|
* 可以在集合符号中使用不成立的条件来构造空集,例如,`∅ = { x : x ≠ x }`,或 `∅ = { x : x ∈ N, x < 0 }`;
|
|
|
|
|
* 空集总是唯一的(即,有且只有一个空集);
|
|
|
|
|
* 空集是所有集合的子集;
|
2021-08-08 08:09:40 +03:00
|
|
|
|
* 空集的基数为 0,即 `|∅| = 0`。
|
2021-06-18 17:54:03 +03:00
|
|
|
|
|
|
|
|
|
## 集合的表示
|
|
|
|
|
|
|
|
|
|
### 集合的逐项构造
|
|
|
|
|
|
|
|
|
|
集合可以通过包含其全部项的列表逐项生成。例如,`S = { a, b, c, d }`。
|
|
|
|
|
|
|
|
|
|
只要构成集合的项清楚,长列表可以用省略号缩短。例如,`E = { 2, 4, 6, 8, ... }` 显然为所有偶数构成的集合,它包含无穷多项,虽然我们只显式写出了其中四项。
|
|
|
|
|
|
|
|
|
|
### 集合构造器
|
|
|
|
|
|
|
|
|
|
集合构造器符号是构造集合的一种更具描述性的方式。它依赖于一个主语和一个谓词,使得 `S = { 主语 : 谓词 }`。 例如,
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
A = { x : x 是元音字母 } = { a, e, i, o, u, y}
|
|
|
|
|
B = { x : x ∈ N, x < 10 } = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
|
|
|
|
|
C = { x : x = 2k, k ∈ N } = { 0, 2, 4, 6, 8, ... }
|
|
|
|
|
```
|
|
|
|
|
|
2021-08-08 08:09:40 +03:00
|
|
|
|
有时,谓词可能会 "漏 "到主语中,例如,
|
2021-06-18 17:54:03 +03:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
D = { 2x : x ∈ N } = { 0, 2, 4, 6, 8, ... }
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 关系
|
|
|
|
|
|
|
|
|
|
### 从属关系
|
|
|
|
|
|
|
|
|
|
* 如果值 `a` 包含在集合 `A` 中,那么我们说 `a` 属于 `A`,并用符号表示为 `a ∈ A`。
|
|
|
|
|
* 如果值 `a` 不包含于集合 `A` 中,那么我们说 `a` 不属于 `A`,并用符号表示为 `a ∉ A`。
|
|
|
|
|
|
|
|
|
|
### 相等关系
|
|
|
|
|
|
|
|
|
|
* 如果两个集合包括相同的项,那么我们说这两个集合相等,例如,`A = B`。
|
2021-08-08 08:09:40 +03:00
|
|
|
|
* 集合的相等关系于顺序无关,例如 `{ 1, 2, 3, 4 } = { 2, 3, 1, 4 }`。
|
|
|
|
|
* 集合中的元素不能重复,例如 `{ 1, 2, 2, 3, 4, 3, 4, 2 } = { 1, 2, 3, 4 }`。
|
|
|
|
|
* 集合 `A` 与 `B` 相等当且仅当 `A ⊆ B` 且 `B ⊆ A`。
|
2021-06-18 17:54:03 +03:00
|
|
|
|
|
|
|
|
|
## 特殊集合
|
|
|
|
|
|
|
|
|
|
### 幂集
|
|
|
|
|
|
|
|
|
|
* 令 `A` 为任意集合。幂集指的是包括了 `A` 的所有子集的集合,记作 `P(A)`。如果集合 `A` 由 `2n` 个元素组成,那么 `P(A)` 中有 `2^n` 个元素。
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
P(A) = { x : x ⊆ A }
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 两个集合的运算
|
2024-05-14 14:23:32 +03:00
|
|
|
|
|
2021-06-18 17:54:03 +03:00
|
|
|
|
### 并
|
|
|
|
|
|
|
|
|
|
给定集合 `A` 和 `B`,两个集合的并由出现在 `A` 或 `B` 中的项构成,记作 `A ∪ B`。
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
A ∪ B = { x : x ∈ A ∪ x ∈ B }
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 交
|
|
|
|
|
|
|
|
|
|
给定集合 `A` 和 `B`,两个集合的交由出现在 `A` 和 `B` 中的项构成,记作 `A ∩ B`。
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
A ∩ B = { x : x ∈ A, x ∈ B }
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 差
|
2024-05-14 14:23:32 +03:00
|
|
|
|
|
2021-06-18 17:54:03 +03:00
|
|
|
|
给定集合 `A` 和 `B`,`A` 对于 `B` 的集合差指的是属于 `A` 但不属于 `B` 的每一项。
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
A \ B = { x : x ∈ A, x ∉ B }
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 对称差
|
2024-05-14 14:23:32 +03:00
|
|
|
|
|
2021-06-18 17:54:03 +03:00
|
|
|
|
给定集合 `A` 和 `B`,对称差指的是属于 `A` 或 `B` 但不属于它们交集的所有项。
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
A △ B = { x : ((x ∈ A) ∩ (x ∉ B)) ∪ ((x ∈ B) ∩ (x ∉ A)) }
|
|
|
|
|
|
|
|
|
|
A △ B = (A \ B) ∪ (B \ A)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 笛卡尔积
|
2024-05-14 14:23:32 +03:00
|
|
|
|
|
2021-06-18 17:54:03 +03:00
|
|
|
|
给定集合 `A` 和 `B`,`A` 和 `B` 的笛卡尔积由 `A` 和 `B` 的项的所有组合构成。
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
A × B = { (x, y) | x ∈ A, y ∈ B }
|
|
|
|
|
```
|