当前位置: 首页 > news >正文

**集合**实验**

1.集合的概念

离散数学是围绕集合的概念而建立的,集合可以描述为“由一些任意确定的、彼此有区别的对象所组成的一个整体”。集合中的对象称为该集合中的元素,通常用大写英文字母表示集合,小写英文字母表示元素。

如果a是集合S中的元素,则记为a∈S,读作“a属于S”,如果a不是S中的元素,则记为a∉S,读作“a不属于S”。自然数集合用N表示,整数集合用Z表示,有理数集合用Q表示,实数集合用R表示。

若集合的元素个数为有限个,称为有限集,反之,若集合的元素个数为无限个,则为无限集。

使用"sympy"数学计算库创建一个有限集A={1,2,3}:

A = sym.FiniteSet(1,2,3)

  • FiniteSet 是 SymPy 提供的类,用于表示数学上的有限集合

输出这个集合A:

print(A)

输出为:

{1, 2, 3} # 可以看到输出结果转为了我们使用的花括号的形式表示。

可使用has()函数判断元素1是否属于集合A:

print(A.has(1))

输出为:

True # 元素 1 属于集合 A。

(1)子集

假设我们从一个集合U中分出两个小集合A和B,若集合A中的元素都存在于集合B,则称集合A为集合B的子集,记为A⊆B。当集合A中的元素全部存在于集合B,而集合B中的元素不完全存在于集合A,则称集合A为集合B的真子集,记为A⊂B。子集有如下性质:

若A⊆B,且B⊆C,则A⊆C;

若A⊂B,且B⊆C,则A⊂C;

若A⊆B,且B⊂C,则A⊂C;

若A⊂B,且B⊂C,则A⊂C。

用 Python 语言表示第一个性质:

A = sym.FiniteSet(1,2,3)      # 创建集合A={1,2,3}

B = sym.FiniteSet(1,2,3,4)    # 创建集合B={1,2,3,4}

C = sym.FiniteSet(1,2,3,4,5)  # 创建集合C={1,2,3,4,5}

print(A <= B)                 # 判断A是否为B的子集

print(B <= C)                 # 判断B是否为C的子集

print(A <= C)                 # 判断A是否为C的子集

输出为:

True

True

True

符合第一个性质结论。

<= 运算符 在 SymPy 中表示 子集(subset)关系

  • A <= B 检查 A⊆B(即 A 的所有元素是否都在 B 中)。

  • 类似地,B <= C 检查 B⊆C,A <= C 检查 A⊆C

< 运算符 在 SymPy 中表示 真子集(Proper Subset)关系

  •    A < BA 是 B 的子集且 A != B

(2)空集

我们将没有元素的集合,即元素个数为 0 的集合,称为空集,反之称为非空集。空集使用∅或{}表示,空集是任意集合的子集,是任意非空集合的真子集。

空集可以使用"sympy"表示为:

D = sym.FiniteSet()  # 直接使用有限集函数创建,不添加元素

print(D)        # 输出空集 D

结果为:

EmptySet()

(3)集合表示法

①列举法:列出集合中的全部元素或者仅列出一部分元素,其余用省略号 (· · · ) 表示。元素之间用逗号分开,然后用花括号括起来。

②描述法:用P (x)表示x具有性质P,用{ x | P(x) } 表示具有性质P的全体元素组成的集合。

2. 集合的基本运算

(1)并:AÈB = { x | xÎA Ú xÎB }

例如:全集为全体整数,集合A={1,2,3,4},集合B={3,4,5,6},则A∪B={1,2,3,4,5,6}。使用 Python 的“sympy”库表示为:

A = sym.FiniteSet(1, 2, 3, 4)

B = sym.FiniteSet(3, 4, 5, 6)

C = sym.Union(A, B)   # 使用并运算函数

print(C)     # 输出结果集合C

结果为:

{1, 2, 3, 4, 5, 6}

(2)交:AÇB = { x | xÎA Ù xÎB }

例如:全集为全体整数,集合A={1,2,3,4},集合B={3,4,5,6},则A∩B={3,4}。

使用 Python 的“sympy”库表示为:

A = sym.FiniteSet(1, 2, 3, 4)

B = sym.FiniteSet(3, 4, 5, 6)

C = sym.Intersection(A, B)   # 使用交运算函数

print(C)     # 输出结果集合C

结果为:

{3, 4}

(3)相对补:A-B = { x | xÎA Ù xÏB }

例如:全集为全体整数,集合A={1,2,3,4},集合B={3,4,5,6},则A−B={1,2}

使用 Python 的“sympy”库表示为:

A = sym.FiniteSet(1, 2, 3, 4)

B = sym.FiniteSet(3, 4, 5, 6)

C = A - B

print(C)     # 输出结果集合C

结果为:

{1, 2}

(4)对称差:AÅB = (A-B)È(B-A) = (AÈB)-(AÇB)

例如:全集为全体整数,集合A={1,2,3,4},集合B={3,4,5,6},则A⊕B={1,2,5,6}

使用 Python 的“sympy”库表示为:

A = sym.FiniteSet(1, 2, 3, 4)

B = sym.FiniteSet(3, 4, 5, 6)

C = sym.Union(A, B) - sym.Intersection(A, B)   # 对称差运算

print(C)     # 输出结果集合C

结果为:

{1, 2, 3, 4}

(5)绝对补:~A = E-A= { x | xÏA }

例如:全集E={1,2,3,4,5},集合A={1,2,3,4},则E-A={5}

使用 Python 的 “sympy” 库表示为:

E = sym.FiniteSet(1, 2, 3, 4, 5)

A = sym.FiniteSet(1, 2, 3, 4)

E.is_UniversalSet     # 设置E为全集

C = A.complement(E)   # 使用补运算函数

print(C)     # 输出结果集合C

结果为:

{5}

相关文章:

  • 《Python星球日记》第29天:Flask进阶
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(八)
  • JobHistory Server的配置和启动
  • 字符串哈希专题
  • 36、C#中的⽅法声明参数关键字params,ref,out的意义及⽤法
  • Vue3响应式原理那些事
  • Python10天冲刺《Pydantic 是一个用于数据验证和设置管理的 Python 库》
  • 从入门到登峰-嵌入式Tracker定位算法全景之旅 Part 5 |地图匹配与轻量 SLAM:HMM/Viterbi 与简化图优化
  • 常用对称加密算法的Python实现及详解
  • Javascript学习笔记2——基本引用类型
  • PriorityQueue
  • GESP2024年3月认证C++八级( 第二部分判断题(1-5))
  • kdump详解
  • 使用 NGINX 实现 HTTP Basic 认证ngx_http_auth_basic_module 模块
  • python函数复习(形参实参,收集参数,关键字参数)
  • 《OmniMeetProTrack 全维会议链智能追录系统 软件说明书》
  • 【NLP】33. Pinecone + OpenAI :构建自定义语义搜索系统
  • E-R图作业
  • 《人件》第四章 高效团队养成
  • webpack 的工作流程
  • 市场监管总局通报民用“三表”专项检查结果
  • 从陈毅杯到小应氏杯,五一长假上海掀起围棋热
  • 长线游、县域游、主题游等持续升温,假期文旅市场供需两旺
  • 中海油高管调整:刘永杰、刘小刚任副总裁
  • 2类药物别乱吃,严重可致肝肾衰竭!多人已中招
  • 马上评|“景区陪爬”能成为新职业吗?