集合计算器
执行集合运算:并集、交集、差集、对称差集、笛卡尔积和集合关系。
关于这个计算器
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),去重和成员判断非常高效。处理「找出两份名单的差异」这类任务时,用集合比嵌套循环快得多。
