--- category: Algorithms & Data Structures name: Set theory contributors: - ["Andrew Ryan Davis", "https://github.com/AndrewDavis1191"] 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 } ```