設定計算器
執行集合運算:並、交、差、對稱差、笛卡兒積和集合關係。
關於這個計算器
Operate on two sets entered as comma-separated values. The tool returns union, intersection, difference, and symmetric difference, plus set membership checks.
Set operations
- Union (A ∪ B) — everything in A or B.
- Intersection (A ∩ B) — only items in both A and B.
- Difference (A − B) — items in A but not in B.
- 對稱差 — items in either set but not both.
How to enter sets
Type values separated by commas, e.g. 1, 2, 3. Duplicates are removed automatically because a set holds each element at most once.
Where this is used
Set logic underpins database queries, probability, logic design, and data de-duplication.
如何使用設定計算器
- 1輸入集合 A 與集合 B 的元素,用逗號分隔。
- 2選擇運算:並集、交集、差集或對稱差集。
- 3檢視結果集合,以去重後的成員列出。
集合運算詳解
並集 A∪B、交集 A∩B、差集 A−B、對稱差 (A−B)∪(B−A)集合是互異元素的彙集;集合運算組合或比較集合時不計重複。
並集保留全部,交集只保留共有項,差集保留屬於其一但不屬於另一的部分。
集合運算最容易混淆的是差集的方向:A − B 是「在 A 中但不在 B 中」,反過來 B − A 是「在 B 中但不在 A 中」,兩者一般不相等。用上表的例子,A − B = {1, 2},而 B − A = {4, 5}。判斷技巧:先看減號前面的集合,從中剔除後面集合含有的元素。
容斥原理是集合運算最重要的實用公式:|A ∪ B| = |A| + |B| − |A ∩ B|。直接相加會把交集部分算兩次,所以要減掉一次。上例中 |A| = 3、|B| = 3、|A ∩ B| = 1,所以 |A ∪ B| = 3 + 3 − 1 = 5,與實際的 {1,2,3,4,5} 相符。這個原理可以推廣到三個及以上集合,是機率論和計數問題的基礎工具。
| 運算 | 符號 | 含義 | 示例(A={1,2,3}, B={3,4,5}) |
|---|---|---|---|
| 並集 | A ∪ B | 屬於 A 或 B 的所有元素 | {1, 2, 3, 4, 5} |
| 交集 | A ∩ B | 同時屬於 A 和 B 的元素 | {3} |
| 差集 | A − B | 屬於 A 但不屬於 B 的元素 | {1, 2} |
| 補集 | A′ | 全集中不屬於 A 的元素 | 取決於全集定義 |
| 對稱差 | A △ B | 只屬於其中一個集合的元素 | {1, 2, 4, 5} |
集合的基本運算
常見問題
為何集合中無重複?
按定義集合每個元素最多出現一次,重複會合並。
什麼是對稱差集?
恰好屬於兩個集合中某一個的元素,排除共有成員。
集合有序嗎?
否,{1,2,3} 等於 {3,2,1};只關心成員關係。
集合裡的元素能重複嗎?
不能,這是集合與「列表/多重集」的核心區別。集合中的每個元素只能出現一次,{1, 1, 2} 和 {1, 2} 是同一個集合。另外集合**沒有順序**,{1, 2, 3} 和 {3, 2, 1} 完全相同。如果業務需要保留重複次數或順序,應使用多重集(multiset)或列表/陣列。資料庫中的 DISTINCT 操作本質就是在去重、把結果當集合處理。
集合運算在程式設計中怎麼實現?
多數語言內建了集合型別:Python 用 set(支援 & 交集、| 並集、− 差集、^ 對稱差),JavaScript 有 Set(需自己實現運算或用擴充套件方法),SQL 用 UNION/INTERSECT/EXCEPT。集合的底層通常是雜湊表,因此查詢、插入的平均複雜度是 O(1),去重和成員判斷非常高效。處理「找出兩份名單的差異」這類任務時,用集合比巢狀迴圈快得多。
