当前位置: 首页 > 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}

http://www.xdnf.cn/news/293869.html

相关文章:

  • 基于SpringBoot的漫画网站设计与实现
  • 迭代器模式(Iterator Pattern)
  • Numpy随机分布
  • Lesson 17 Always young
  • Multi Agents Collaboration OS:专属多智能体构建—基于业务场景流程构建专属多智能体
  • 数据库MySQL学习——day9(聚合函数与分组数据)
  • 2025系统架构师---论软件可靠性设计范文
  • c++代码_加密_解密
  • 【了解】数字孪生网络(Digital Twin Network,DTN)
  • Sliding Window Attention(Longformer)
  • R7打卡——糖尿病预测模型优化探索
  • 【STM32单片机】#13 RTC实时时钟
  • cpp学习笔记1--class
  • CloudCompare 中 ccDrawableObject
  • 在Java中,什么是checked exception(即compile-time exception、编译时异常)?
  • 基于DGI框架的最佳实践
  • 数字化工厂中央控制室驾驶舱系统 - Windows 部署笔记
  • 计算机体系结构 第九章
  • 不小心把当前的环境变量路径覆盖掉怎么办
  • Gemini 解释蓝图节点的提示词
  • Lesson 15 Good news
  • 功率放大器设计
  • 大模型基础(五):transformers库(下):快速分词器、自动配置类、快速微调
  • pytorch checkpointing
  • 交换机工作原理(MAC地址表、VLAN)
  • P4168 [Violet] 蒲公英 Solution
  • 生物化学笔记:神经生物学概论10 运动节律的控制 运动时脑内活动 运动系统疾病及其治疗(帕金森、亨廷顿)
  • 【OSPF协议深度解析】从原理到企业级网络部署
  • 第15章:双星入侵与时间的迷雾
  • AIGC工具平台-图片转换线稿