📜  数学 |集合操作(集合论)(1)

📅  最后修改于: 2023-12-03 15:10:17.904000             🧑  作者: Mango

数学 | 集合操作(集合论)

介绍

集合操作是指对集合进行的各种操作,可以分为基本操作和复合操作。基本操作包括集合的并、交、补等操作,复合操作则是对基本操作在一起使用而形成的更复杂的操作。

在程序设计中,集合操作可以用来解决很多实际问题,例如筛选数据、去重、数据统计等。

基本操作
并集

并集是指将两个集合中所有的元素取出并成为一个新集合的操作,用符号 $\cup$ 来表示。

例如:

$$ A = {1,2,3}, B = {2,3,4} $$

则 $A \cup B = {1,2,3,4}$。

代码实现:

set_A = {1,2,3}
set_B = {2,3,4}
set_C = set_A | set_B
print(set_C) # output: {1, 2, 3, 4}
交集

交集是指将两个集合中共有的元素取出成为一个新集合的操作,用符号 $\cap$ 来表示。

例如:

$$ A = {1,2,3}, B = {2,3,4} $$

则 $A \cap B = {2,3}$。

代码实现:

set_A = {1,2,3}
set_B = {2,3,4}
set_C = set_A & set_B
print(set_C) # output: {2, 3}
差集

差集是指将两个集合中不同的元素取出成为一个新集合的操作,用符号 $-$ 来表示。

例如:

$$ A = {1,2,3}, B = {2,3,4} $$

则 $A - B = {1}$,$B - A = {4}$。

代码实现:

set_A = {1,2,3}
set_B = {2,3,4}
set_C = set_A - set_B
set_D = set_B - set_A
print(set_C) # output: {1}
print(set_D) # output: {4}
对称差

对称差是指将两个集合中不同的元素取出成为一个新集合,用符号 $\triangle$ 来表示。

例如:

$$ A = {1,2,3}, B = {2,3,4} $$

则 $A \triangle B = {1,4}$。

代码实现:

set_A = {1,2,3}
set_B = {2,3,4}
set_C = set_A ^ set_B
print(set_C) # output: {1, 4}
包含关系

一个集合中如果包含另一个集合,则称前一个集合为后一个集合的超集,后一个集合为前一个集合的子集。例如:

$$ A = {1,2,3}, B = {2,3} $$

则 $B$ 是 $A$ 的子集,$A$ 是 $B$ 的超集。

代码实现:

set_A = {1,2,3}
set_B = {2,3}
if set_B.issubset(set_A):
    print("Set B is a subset of Set A.")
if set_A.issuperset(set_B):
    print("Set A is a superset of Set B.")

输出:

Set B is a subset of Set A.
Set A is a superset of Set B.
复合操作
并集、交集与差集的组合

我们可以用并集、交集和差集等基本操作来实现更为复杂的集合操作。例如:

$$ A = {1,2,3}, B = {2,3,4} $$

则 $(A \cup B) - (A \cap B) = {1,4}$。

代码实现:

set_A = {1,2,3}
set_B = {2,3,4}
set_C = (set_A | set_B) - (set_A & set_B)
print(set_C) # output: {1, 4}
集合的笛卡尔积

两个集合 $A$ 和 $B$ 的笛卡尔积是指将 $A$ 中的每个元素与 $B$ 中的每个元素组合起来形成的新集合,用符号 $\times$ 来表示。

例如:

$$ A = {1,2}, B = {3,4} $$

则 $A \times B = {(1,3),(1,4),(2,3),(2,4)}$。

代码实现:

set_A = {1,2}
set_B = {3,4}
set_C = { (a,b) for a in set_A for b in set_B }
print(set_C) # output: {(1, 3), (1, 4), (2, 3), (2, 4)}
总结

集合操作是我们在程序设计中常常用到的基本操作之一,学好集合操作能够提高我们程序设计的效率以及代码的可读性。