Evanalysis
2.1嵌入式互動預計閱讀時間: 12 分鐘

2.1 集合與集合運算

建立成員、子集證明,以及標準集合構造的語言,為之後章節反覆用到的概念打底。

集合是用來描述一批對象的基本語言。在這一科之中,集合不是旁支內容, 而是邏輯、函數、關係,以及之後的數系構造的共同語言。

如果你現在覺得符號有些陌生,這是正常的。這一單元的目標就是令這套語言 變得足夠精確,使後面章節可以直接使用。

集合、屬於、相等

定義

集合

集合是一批對象所組成的整體。

如果 x 是集合 AA 的元素,我們寫 xAx \in A;如果不是,就寫 xAx \notin A

例子:

  • {1, 2, 3} 是集合。
  • {香港島、九龍、新界} 是集合。
  • 是空集合,也就是沒有任何元素的集合。

同一個集合可以有不同寫法,但集合本身只由元素決定。

定理

外延性

兩個集合相等,當且僅當它們擁有完全相同的元素。

符號上寫成:

A=B    x(xAxB).A = B \iff \forall x\, (x \in A \leftrightarrow x \in B).

所以證明集合相等的標準方法是先證兩個包含關係:

  1. ABA \subset B
  2. BAB \subset A

常見錯誤

不要將集合相等與描述相等混淆

{1, 2, 3}{3, 2, 1} 是同一個集合,因為元素完全一樣。列出順序 不重要。

常見錯誤

子集符號要留意本地慣例

本課程用 ABA \subset B 表示「A 的每個元素都在 B 之中」。有些書會用 ABA \subseteq B 表示這個意思,而將 ABA \subset B 保留給 strict subset。 看書時要先確認慣例。

集合列式與有界謂詞

學過謂詞邏輯後,最常見的定義集合方式,是先指定一個已知集合,再保留當中 滿足某個條件的元素:

{xSP(x)}.\{x \in S \mid P(x)\}.

這個記號要仔細讀。直線前面的部分說明變量可在哪個集合內取值;直線後面的 謂詞說明哪些元素會被留下。例如

{nZn is even}\{n \in \mathbb{Z} \mid n \text{ is even}\}

就是所有偶整數的集合。

常見錯誤

不要忽略所在集合

{xP(x)}\{x \mid P(x)\} 有時是方便的簡寫,但嚴謹版本應該把變量限制在某個已知集合 之內。這樣做可以避免把任何文字描述都當成自動產生良好數學對象。

常見錯誤

集合不是 multiset

集合只記住某個對象是否出現,不記住它在列表中出現多少次。因此 \{1,1,2,3\}\{1,2,3\} 描述同一個集合;若討論 multiset,兩者才會不同。

建立新集合

知道幾個集合之後,我們通常會想造出更多集合。標準運算就是用來做這件事。

運算記號定義
聯集ABA \cup B屬於 AABB 的元素
交集ABA \cap B同時屬於 AABB 的元素
差集ABA \setminus B屬於 AA 但不屬於 BB 的元素
補集AcA^c在所選全集內,不屬於 AA 的元素

補集一定要先指定全集 EE。在這一單元之中,我們通常默認所有集合都在某個 固定 EE 之中,所以 AcA^c 也就是 EAE \setminus A

例題

追蹤元素如何經過幾個運算

A={1,2,4},B={2,3,4},A = \{1, 2, 4\}, \qquad B = \{2, 3, 4\},

而全集取作

E={1,2,3,4,5}.E = \{1, 2, 3, 4, 5\}.

那麼就有:

  • AB={1,2,3,4}A \cup B = \{1, 2, 3, 4\}
  • AB={2,4}A \cap B = \{2, 4\}
  • AB={1}A \setminus B = \{1\}
  • BA={3}B \setminus A = \{3\}
  • Ac={3,5}A^c = \{3, 5\}
  • (AB)c={5}(A \cup B)^c = \{5\}

解答

為甚麼補集一定要有全集

這些等式如何證

本單元的集合恆等式不是靠背誦,而是靠逐個元素追蹤去證明。

定理

基本集合代數

對集合 AABBCC

  • A=AA \cup \varnothing = A
  • AB=BAA \cup B = B \cup A
  • A(BC)=(AB)CA \cup (B \cup C) = (A \cup B) \cup C
  • AA=AA \cup A = A
  • A(BC)=(AB)(AC)A \cap (B \cup C) = (A \cap B) \cup (A \cap C)
  • A(BC)=(AB)(AC)A \cup (B \cap C) = (A \cup B) \cap (A \cup C)
  • (AB)c=AcBc(A \cup B)^c = A^c \cap B^c
  • (AB)c=AcBc(A \cap B)^c = A^c \cup B^c
  • (Ac)c=A(A^c)^c = A
  • AAc=A \cap A^c = \varnothing
  • AAc=EA \cup A^c = E
  • ABA \subset B 當且僅當 AB=BA \cup B = B
  • ABA \subset B 當且僅當 AB=AA \cap B = A
  • ABA \subset B 當且僅當 BcAcB^c \subset A^c

核心證法是 element chasing。譬如:

xA(BC)    xA 且 (xB 或 xC)x \in A \cap (B \cup C) \iff x \in A \text{ 且 } (x \in B \text{ 或 } x \in C)

等價於

(xA 且 xB) 或 (xA 且 xC),(x \in A \text{ 且 } x \in B) \text{ 或 } (x \in A \text{ 且 } x \in C),

所以又等價於

x(AB)(AC).x \in (A \cap B) \cup (A \cap C).

證明

示範:為甚麼 ABA \subset B 會推出 AB=BA \cup B = B

其他常見構造

這個課程後面亦也會反覆用到以下幾種集合構造。

笛卡兒積

A×BA \times B 是所有有序對 (a, b) 的集合,其中 aAa \in AbBb \in B。 次序是有意思的:(a, b)(b, a) 一般不同。

如果 A=5|A| = 5B=3|B| = 3,那麼 A×B=15|A \times B| = 15

R×R=R2R \times R = R^2 就是平面。

有限次積

AnA^n 表示 AA 同自己做 n 次笛卡兒積,也就是所有 n-tuple。

冪集

P(A)AA 的所有子集所組成的集合。

如果 AAn 個元素,那麼 P(A) 就有 2n2^n 個元素。另一個好用的理解方式 是 indicator function:每個子集都可以對應到一個 A0,1A \to {0,1} 的函數。

例如

P({a,b})={,{a},{b},{a,b}}.P(\{a, b\}) = \{\varnothing, \{a\}, \{b\}, \{a, b\}\}.

不交聯集

有時兩個集合在原來的寫法上可能有重疊,但我們又想保留每個元素的來源。 不交聯集就是透過標籤記住每件元素原本屬於哪一個集合。

直觀上,ABA \sqcup B 就是「加上標記 1 的 AA」和「加上標記 2 的 BB」。

如何仔細證明集合恆等式

去到這一步,集合恆等式應該被理解成「屬元條件相同」的命題,而不是單靠 圖形背出來。

標準證法通常是:

  1. 任取一個元素 x
  2. xx \in 兩邊集合翻譯成邏輯條件;
  3. 逐步化簡,直到兩邊變成同一句說話。

例題

證明 A(BC)=(AB)CA \cap (B \setminus C) = (A \cap B) \setminus C

xA(BC)x \in A \cap (B \setminus C)

出發,就表示:

  • xAx \in A
  • xBx \in B
  • xCx \notin C

而這三個條件加埋,正正就是

x(AB)Cx \in (A \cap B) \setminus C

的意思。

由於推理可以雙向讀回,所以兩邊集合相等。

這種逐元素追蹤的方法,之後會再次出現在德摩根律、關係,與數系構造之中。

如何正確閱讀 Venn 圖

Venn 圖適合用來整理情況,但證明仍然要回到屬元條件。圖形可以提示某個區域 為空、包含在另一個區域內,或被切成幾部分;正式文字則要說清楚這對應哪一個 包含關係、不交條件或計數等式。

對三個集合而言,A(BC)A \subset (B \cup C) 表示 AA 的每個元素都至少落在 BBCC 其中之一。它不表示 ABA \subset B,也不表示 ACA \subset C。能否分清 這些可能性,是檢查自己是否真正用邏輯方式閱讀圖形的好方法。

例題

把四種 Venn 圖條件翻譯成區域語言

假設 AABBCC 都是非空集合。以下常見練習條件,最好先讀成區域指令, 而不是只憑圖形印象處理。

條件圖中必須呈現的意思
ABA \subset BCBC \subset B,且 AC=A \cap C = \varnothingAACC 都在 BB 之內,但二者互不相交。BB 仍然可以有不屬於 AACC 的元素。
ABA \cap B \ne \varnothingACA \cap C \ne \varnothingBCB \cap C \ne \varnothing,且 ABC=A \cap B \cap C = \varnothing每兩個集合都有交集,但三者共同交集為空。因此三個 pairwise overlap 必須是分開的區域。
A(BC)A \subset (B \cap C),且 BCB \subset C因為 BCB \subset C,所以 BCB \cap C 其實就是 BB。於是 AABB 之內,而 BB 又在 CC 之內。
A(BC)A \subset (B \cup C)、並非 ABA \subset B、並非 ACA \subset CAA 沒有元素落在 BCB \cup C 之外,但 AA 必須至少有一個元素在 CBC \setminus B,亦至少有一個元素在 BCB \setminus C

第四行最容易被誤讀。它不只是說 AA 同時碰到 BBCC;它還說 AA 完全 被 BBCC 覆蓋,但又不能只由其中一個集合單獨覆蓋。

有限集合如何計數

集合語言不只用來分類,還直接控制計數。

如果 AABB 都是有限集合,那麼:

  • A×B=AB|A \times B| = |A|\,|B|
  • P(A)=2A|P(A)| = 2^{|A|}
  • AB=A+BAB|A \cup B| = |A| + |B| - |A \cap B|

聯集公式之所以要減交集,是因為交集之中的元素如果直接相加,會被計兩次。

例題

計一個聯集同冪集

假設 A=6|A| = 6B=5|B| = 5AB=2|A \cap B| = 2

那麼就有

AB=6+52=9|A \cup B| = 6 + 5 - 2 = 9

再設 S={a,b,c}S = \{a,b,c\}。每個元素都只有兩個選擇:入某個子集,或者不入。 所以總共有

222=23=82 \cdot 2 \cdot 2 = 2^3 = 8

個子集。因此 P(S)=8|P(S)| = 8

例題

不用畫圖也可以完成的 Venn 圖計數

十位學生去遠足。七位使用防曬,六位戴帽,兩位沒有任何防曬保護。

SS 是使用防曬的集合,HH 是戴帽的集合。由於兩位學生不在兩個集合之中,

SH=102=8.|S \cup H| = 10 - 2 = 8.

由 inclusion-exclusion,

SH=S+HSH=7+68=5.|S \cap H| = |S| + |H| - |S \cup H| = 7 + 6 - 8 = 5.

所以五位學生同時使用防曬並戴帽。

子集證明檢查表

子集證明會反覆出現,所以最好令它變成固定套路。

如果要證 ABA \subseteq B,就由任取 xAx \in A 開始,再用 AA 的定義推出 足夠資訊,最後證明同一個 x 其實都在 BB 之中。由於 x 是任取,結論 就對 AA 的每個元素成立。

這個 direct proof 模式,之後在關係、偏序,與等價類之中也會再見到。

常見錯誤

常見錯誤

補集不等於差集

AcA^c 是「在全集外面的部分」。ABA \setminus B 是「A 之中但不在 B 之中的部分」。 兩者有關,但不同。

常見錯誤

沒有全集就不可以寫補集

如果你寫補集,一定要知道你是在甚麼全集之中做運算。否則 c^c 是含糊的。

常見錯誤

積集順序有意義

A×BA \times BB×AB \times A 一般包含不同有序對。這個就是為甚麼函數與關係要用積集語言。

小檢查

快速檢查

如果 A=a,b,cA = {a, b, c}B=b,c,dB = {b, c, d}ABA \cap B 是甚麼?

只保留同時屬於兩個集合的元素。

解答

答案

快速檢查

為甚麼未指定全集之前,AcA^c 不夠清楚?

先問補集是「在甚麼範圍內」取外面。

解答

答案

快速檢查

十位學生去遠足。七位使用防曬,六位戴帽,兩位兩者皆沒有。多少位兩者皆有?

先把「兩者皆沒有」翻譯成聯集大小。

解答

答案

快速檢查

如果 ABA \subset B,那麼 ABA \cup BABA \cap B 會簡化成甚麼?

用上面的 absorption laws。

解答

答案

快速檢查

假設 A(BC)A \subset (B \cup C),但 AA 不是 BB 的子集,也不是 CC 的子集。AA 的哪兩個部分必須非空?

把每一個「不是子集」的敘述翻譯成存在某個元素。

解答

答案

為甚麼這一單元重要

這一單元是後面數系構造的語言基礎。

  • N2N^2 會用來構造整數。
  • 等價類會用來構造有理數。
  • 一個集合上的關係會變成偏序和等價關係的語言。
  • 冪集和笛卡兒積會在之後說明 family、tuple、以及各種構造時再出現。

邊讀邊試

比較一對集合

互動探索器讓你把元素加入或移出 A 與 B,並即時看見運算結果改變。

集合 A

集合 B

聯集

{1, 2, 3, 4}

交集

{2, 4}

差集 A \ B

{1}

本節掌握 checkpoint

要完成這一節 checkpoint,需要把每一題答對。 答對進度: 0%.

技能點: sets, venn-diagrams, inclusion-exclusion

十位學生去遠足。七位使用防曬,六位戴帽,兩位兩者皆沒有。多少位兩者皆有?

已用嘗試次數: 0

剩餘嘗試次數: 不限嘗試次數

預覽不會消耗嘗試次數。

提交會記錄一次正式評分嘗試。

  • 使用 SH=S+HSH|S \cup H| = |S| + |H| - |S \cap H|

技能點: sets, venn-diagrams, subset-witnesses

假設 A(BC)A \subset (B \cup C),但 AA 不是 BB 的子集,也不是 CC 的子集。哪一項必定正確?

已用嘗試次數: 0

剩餘嘗試次數: 不限嘗試次數

預覽不會消耗嘗試次數。

提交會記錄一次正式評分嘗試。

  • AA 不包含於 BB,意思是存在一個 AA 的元素不在 BB 中。

先備知識

這一節可以獨立閱讀。

本單元重點詞彙

Premium learning add-ons

Core notes stay free. Advanced exercises, video explanations, and premium exports are available through paid plans.