---
category: Algorithms & Data Structures
name: Set theory
contributors:
translators:
    - ["Tianchen Xu", "https://github.com/lo0b0o"]
lang: zh-cn
---
集合论是数学的一个分支，研究集合、它们的运算和它们的性质。

* 集合由不重复的项组成。

## 基本符号

### 运算符
* 并运算符，`∪`，表示“或”；
* 交运算符，`∩`，表示“且”；
* 差运算符，`\`，表示“不包括”；
* 补运算符，`'`，表示补集;
* 叉积运算符，`×`，表示笛卡尔积。

### 限定词
* 冒号限定词，`:`，表示“使得”；
* 从属限定词，`∈`，表示“属于”；
* 子集限定词，`⊆`，表示“是……的子集”;
* 真子集限定词，`⊂`，表示“是……的真子集”。

###  重要的集合
* `∅`，空集，即不包含任何元素的集合；
* `ℕ`，自然数集；
* `ℤ`，整数集；
* `ℚ`，有理数集；
* `ℝ`，实数集。

关于以上集合，有如下几点需要注意：
1. 空集是其本身的子集（并且也是任何其他集合的子集），即便空集不包含任何项；
2. 数学家们对于零是否为自然数的看法通常并不统一，教科书一般会明确说明作者是否认为零是自然数。

### 基数

集合的基数，或者说大小，由该集合中的项目数量决定。基数运算符为 `|...|`。

例如，若 `S = { 1, 2, 4 }`，则 `|S| = 3`。

### 空集
  
* 可以在集合符号中使用不成立的条件来构造空集，例如，`∅ = { x : x ≠ x }`，或 `∅ = { x : x ∈ N, x < 0 }`；
* 空集总是唯一的（即，有且只有一个空集）；
* 空集是所有集合的子集；
* 空集的基数为 0，即 `|∅| = 0`。

## 集合的表示

### 集合的逐项构造

集合可以通过包含其全部项的列表逐项生成。例如，`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, ... }
```

有时，谓词可能会 "漏 "到主语中，例如，

```
D = { 2x : x ∈ N } = { 0, 2, 4, 6, 8, ... }
```

## 关系

### 从属关系

* 如果值 `a` 包含在集合 `A` 中，那么我们说 `a` 属于 `A`，并用符号表示为 `a ∈ A`。
* 如果值 `a` 不包含于集合 `A` 中，那么我们说 `a` 不属于 `A`，并用符号表示为 `a ∉ A`。

### 相等关系

* 如果两个集合包括相同的项，那么我们说这两个集合相等，例如，`A = B`。
* 集合的相等关系于顺序无关，例如 `{ 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`。

## 特殊集合

### 幂集

* 令 `A` 为任意集合。幂集指的是包括了 `A` 的所有子集的集合，记作 `P(A)`。如果集合 `A` 由 `2n` 个元素组成，那么 `P(A)` 中有 `2^n` 个元素。

```
P(A) = { x : x ⊆ A }
```

## 两个集合的运算
### 并

给定集合 `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 }
```

### 差
给定集合 `A` 和 `B`，`A` 对于 `B` 的集合差指的是属于 `A` 但不属于 `B` 的每一项。

```
A \ B = { x : x ∈ A, x ∉ B }
```

### 对称差
给定集合 `A` 和 `B`，对称差指的是属于 `A` 或 `B` 但不属于它们交集的所有项。

```
A △ B = { x : ((x ∈ A) ∩ (x ∉ B)) ∪ ((x ∈ B) ∩ (x ∉ A)) }

A △ B = (A \ B) ∪ (B \ A)
```

### 笛卡尔积
给定集合 `A` 和 `B`，`A` 和 `B` 的笛卡尔积由 `A` 和 `B` 的项的所有组合构成。

```
A × B = { (x, y) | x ∈ A, y ∈ B }
```
