《离散数学》:集合、关系和函数

〇、前言

这章将会对集合、以及集合之上的关系、以及两个集合之间的映射情况做一个细致的讨论。集合作为数学和其他领域中的基础概念,具有广泛的应用和重要的地位。它为数学建立了基本的体系和推理方法,为各个领域的研究和应用提供了一种统一的描述和分析工具。

一、集合

集合是一种很简单的概念,集合的描述方法有多种,比如列举法、描述法。集合只是一个对象,和集合的包含或者相等都是在集合上的一些关系
另外集合还可以参与到运算之中,比如交集并集补集、以及对称差等。人们发现集合进行运算时,会遵循一定的规律,进行抽象后,就能得到集合运算律,比如:幂等律、交换律、吸收律等等。如果继续进行抽象,比如对称差运算,它其实是一个群(Group),后续会继续讨论。

接着就会讨论到集合的划分和覆盖

集合的划分就是对元素进行分类(不一定有共同特征,满足划分概念就行),当然分类的时候,元素 a 自然不能同时出现在不同的类中。事实上,每一类都是后面要讨论到的一个恒等关系。集合的覆盖就是集合 S 所有的分类的并集就是集合 S 本身。

集合的元素的计数中,如果两个元素相同,那么可以认为这两个元素是同一元素,计数的时候只需要计数一次。

对于无限集合,情况就比较复杂了,这其实涉及到了无穷的分类:

  • 可数无穷(Countable Infinity):一个集合被称为可数无穷,如果它的与自然数集(1, 2, 3, …)的势相同。换句话说,可数无穷集合的元素可以用自然数进行一一对应。例如,自然数集、整数集和有理数集都是可数无穷集合。

  • 不可数无穷(Uncountable Infinity):一个集合被称为不可数无穷,如果它的大于自然数集的势。不可数无穷集合的元素无法用自然数进行一一对应。最著名的不可数无穷集合是实数集和实数轴上的点的集合。

比如,偶数构成的集合和自然数构成的集合甚至于整数、有理数构成的集合,元素个数都是一样多的,这点比较违反常识。但实际上,如果进行一一对应这种操作,就会发现它们是一一映射的,映射规则可以随便设置,只要合理就好。

然后就是幂集了,幂集就是集合 A 的全体子集构成的集合,也就是说,幂集的每个元素都是 A 的子集。

二、二元关系和函数

二元关系是指一个集合中的元素之间的某种关联关系或联系。它可以是在同一个集合中的元素之间的关系,也可以是在不同集合中的元素之间的关系。

具体来说,一个二元关系可以表示为一个有序对的集合。假设我们有一个集合A,其中的元素可以用a、b、c等符号表示。那么,二元关系R可以表示为一个由有序对(a, b)组成的集合,其中a是集合A中的元素,b是集合A中的元素,且(a, b)满足某种关联条件或关系。

(一)序偶与笛卡尔积

二元关系中,为了描述两个元素的关系,引入了序偶的概念。序偶中的第一个元素与第二个元素有着某种关系,很明显通常情况下这种关系是不可交换的。有了序偶以后,就可以用特定的方法生成好多的序偶,自然而言的就引入了笛卡尔积的概念。笛卡尔积可以简单的理解为一个集合 A 与另一个集合 B 之间的关系。

定义:设A和B为两个集合,它们的笛卡尔积记作A × B,表示由所有形如(a, b)的有序对组成,其中a ∈ A,b ∈ B。

  • 元素个数:如果集合A的元素个数为n,集合B的元素个数为m,那么它们的笛卡尔积A × B的元素个数为n × m。换句话说,笛卡尔积的元素个数等于两个集合的元素个数的乘积。

  • 交换律:笛卡尔积不满足交换律,即A × B 不等于 B × A

  • 结合律:对于三个集合A、B和C,它们的笛卡尔积满足结合律,即(A × B) × C = A × (B × C)。换句话说,无论怎样对多个集合进行笛卡尔积运算,最终的结果是相同的。

  • 空集:如果一个集合的笛卡尔积与空集进行运算,结果仍然是空集。即,A × ∅ = ∅。

  • 单位元:如果一个集合与单元素集合{()}进行笛卡尔积运算,结果等于原集合本身。即,A × {()} = A。

  • 笛卡尔积对 交集和并集满足分配率

由于笛卡尔积不满足封闭性,我们无法进一步讨论它的其它性质,但是在后面的关系的符合中就可以讨论了!

(二)关系及其表示

一个集合中假设有 m 个元素,那么它能形成的子集一共有 2^m个,其中包含空集
同样,笛卡尔积中有m*n个元素,每一个元素都是一个序偶。那么这些序偶形成的每一个子集都是一个关系。其中空集就是空关系。那么一共能形成 2^m*n个关系。

在这些关系中,有两个个关系比较特殊,分别是空关系、全域关系。另外,如果关系是在 A 自己上的,那么还有一个恒等关系。这就是三个特殊的关系!

对于关系的表示,有 4 个常见的方法:

  • 枚举法
  • 谓词公式法,就是集合的描述法
  • 关系图法
  • 矩阵法:这种表示法非常优秀,它能直观的看到各种关系,也能存储到计算机中后,用各种算法进行操作

(三)关系的性质

以下所有的讨论,都是集合 A 上自己对自己的关系。关系可以进行分类:

  • 自反关系
  • 反自反关系
  • 对称关系
  • 反对称关系
  • 传递关系
1、自反关系

简言之,就是所有的元素 a 对 a 也有关系。

  • 关系图的特点:每个节点都是自回路
  • 关系矩阵的特点:对角线的元素都是 1
2、反自反关系

简言之,就是没有一个元素 a 对 a 有关系。

  • 关系图的特点:没有自回路
  • 关系矩阵的特点:对角线的元素都是 0
3、对称关系

简言之,就是如果存在<a,b>那么一定有<b,a>

  • 关系图的特点:如果两个节点之间有边,那么一定有两条边
  • 关系矩阵的特点:A与 A的转置矩阵相等
4、反对称关系

简言之,如果存在<a,b>那么一定不能有<b,a>

  • 关系图的特点:如果两个节点有边,只有一条边
  • 关系矩阵的特点:矩阵 A 和 A 的转置进行逻辑与之后,除了主对角线,其他元素全部为 0。
5、传递关系

简言之,如果存在<a,b>,<d,e>,那么一定存在<b,d>

  • 关系图的特点,任意两个结点如果有边,那么一定存在一个长度为 1 的边。
  • 矩阵关系的特点:这个比较复杂,需要用一些算法进行检测,肉眼看不出来。

以上就是关系的一些性质。需要注意的是:

  • 一个关系既可以是非自反的,也可以是非反自反的,它们不是二元对立的。
  • 一个关系既可以是自反的,也可以是反自反的,什么关系呢?是空关系。这可以在数学上证明,不再赘述。
  • 一个关系既可以是对称的、也可以是反对称的,比如恒等关系
  • 一个关系既可以是非对称的,也可以是非凡对称的,比如{<1,2>,<2,5>,<5,2>}

(四)关系的复合

这一主题可以说是关系研究中的核心了。
符合关系的就是两种关系进行运算,比如:{<1,3>}o{<3,5>}={<1,5>},这个运算结果可以透露出两个关系的某些关联

人们发现,两个关系 A与 B进行复合运算后,与矩阵逻辑乘(里面的加法也是逻辑加) AxB的运算结果一致。

究其原因,是因为在找符合关系时,在关系矩阵A中如果有<a,b>、在关系矩阵 B 中有<b,c>,这意味着 矩阵 A 的 a 行 b列,与矩阵 B 的 b 行 c 列都是 1,那么它们相乘后,a行 c 列就是 1,这正是两个关系复合的意义所在!因此矩阵运算就成为了关系运算的底层抽象

因此这极大得简化了符合关系的求解,如虎添翼。

(五)逆关系

简言之,求一个关系的逆关系,就是将所有的元素(序偶)的第一元素和第二元素互换位置。

在关系矩阵A中,就是对A进行转置,就得到了关系A的一个逆关系。

在求逆的过程中,就是在求转置,因此这里求逆的操作和矩阵求转置的算法一模一样,注意不是求逆,求转置。

(六)关系闭包运算

什么叫做闭包?关系闭包(Closure of a Relation)是关系理论中的一个概念,它表示通过迭代操作扩展原始关系,使其具有某些附加性质。关系闭包的目的是将原始关系扩展为满足特定性质的最小闭包。说白了就是对集合的一种最小拓展!

给定一个关系R,它可以是一个二元关系或更高阶的关系。关系闭包操作可以应用于以下几种类型的关系:

  • 传递闭包(Transitive Closure):传递闭包是通过迭代操作扩展关系R,使其具有传递性。即,将R中的有序对(a, b)和(b, c)扩展为(a, c),以确保关系中的元素在传递性方面闭合。

  • 自反闭包(Reflexive Closure):自反闭包是通过迭代操作扩展关系R,使其具有自反性。即,在R中添加缺失的自反对(a, a),以确保关系中的元素在自反性方面闭合。

  • 对称闭包(Symmetric Closure):对称闭包是通过迭代操作扩展关系R,使其具有对称性。即,对于R中的每个有序对(a, b),添加对应的有序对(b, a),以确保关系中的元素在对称性方面闭合。

关系闭包的求解可以通过不同的算法和方法来实现,例如华尔沙算法(Warshall Algorithm)用于计算传递闭包。

求解自反闭包、对称闭包的算法都很简单,直接逻辑加一个单位矩阵、转置矩阵就可以得到。而传递闭包则可以使用Warshall 算法来完成。

那么怎么判断一个关系是不是传递闭包呢?有两种思路:

  • 再来一次Warshall算法运算,如果结果和原来相同,那么就是传递闭包;
  • 由于传递闭包是由每个矩阵的幂并集运算得到的,因此只要它的幂运算都属于 A,即可。

(七)等价关系和等价类

等价关系:如果一个关系是自反的、对称的、传递的,那么R 就是一个等价关系。

在集合论和关系理论中,等价类是一种划分(partition)的概念,用于将集合中的元素划分为具有相同性质或关系的子集。等价类是一种等价关系的重要概念。换句话说,等价类是具有相同关系特征的元素的集合

具体来说,对于等价关系R,等价类的定义如下:

对于集合A中的任意元素a,[a] 表示由与 a 等价的所有元素组成的子集。

等价类的性质:等价类具有以下性质:

  • a. 反身性:对于任意元素a ∈ A,a ∈ [a],即一个元素属于它自身的等价类。

  • b. 相容性:对于任意元素a, b ∈ A,如果a 和 b 是等价的(即(a, b) ∈ R),则[a] = [b],即具有相同等价类的元素之间是相等的。

  • c. 互斥性:对于任意元素a, b ∈ A,如果a 和 b 不等价(即(a, b) ∉ R),则[a] ∩ [b] = ∅,即不同等价类的元素之间没有交集

  • 划分性质:等价类将集合A划分为多个不相交的子集,即每个元素属于且仅属于一个等价类。集合A是等价类的并集,即 A = [a₁] ∪ [a₂] ∪ … ∪ [aₙ],其中 a₁, a₂, …, aₙ 是 A 中的不同等价类的代表元素。

商集 A/R 就是集合 A 在关系 R 上的一个划分。这里用一个例子详细说明。

考虑到集合 T={1,2,3,4}和 T上的一个关系 R={<1,1>,<1,4>,<4,1>,<4,4>,<2,2>,<3,3>,<2,3>,<3,2>}。很明显 R 是一个等价关系,另外有两个等价类:

  • [1]R=[4]R={1,4}
  • [2]R=[3]R={2,3}

集合 A关于 R的商集A/R ={{1,4},{2,3}}

很明显的两个定理:

  • 集合 A上的等价关系 R决定了 A 上的一种划分,该划分就是商集 A/R;
  • 集合 A 的一个划分确定 A 的元素间的一个等价关系。

换句话说,划分和等价关系是一一映射的,这就自然地引出了下一个定理: 设R 和 P 是非空集合 A 上的等价关系,如果 R=P,当且仅当 A/R=A/P

(八)相容关系

相容关系比上面的等价关系更弱,它只要求关系 R 具有自反性、对称性

(九)偏序关系

如果要考虑关系的次序,那么就得研究偏序关系。如果 R 是自反反对称的和传递的,那么 R 就是一个偏序关系

偏序关系中的任何一个元素,都能找到一个可比较的元素。于是就定义了全序关系和链以及反链。假设<A,<<>是一个偏序集

  • 链:如果 集合A的一个子集S中任意两个元素都是可以比较的,那么S 就是一个链;
  • 反链:如果 集合A的一个子集S中任意两个元素都是不可以比较的,那么S 就是一个反链;
  • 如果 A 自身构成一个链,则<<就是全序关系,且称<A,<<>是一个全序集

究竟怎么理解“可比较”?我的理解是,如果两个元素可比较的,那么它们就是线性的,不是平行的。如果是不可比较的,那么它们就是平级的。

为了使得这种关系阐述起来更直观,书中介绍了“盖住”的概念,简单的说就是 a 如果有一个顶头上司 b,那么 b 就盖住了 a

对于一个偏序集,它的盖住关系是唯一的,所以可以用盖住的性质画出偏序集合图,或者哈斯图。

比如这个哈斯图中,{4,6,15,10}、{2,3,5}就是反链,里面的元素都是不可比较的;{1,3,9}、{1,2,4}就是两个
在这里插入图片描述

1、极大元、极小元

换句话说,就是有一个集合 B 是集合 A 的子集,其中 A 构成一个偏序关系<A,<< >

  • 如果 B 中没有一个元素能盖住 b,那么 b 就是极大元;
  • 如果B 中的元素 b,没有可以覆盖的元素,那么 b 就是极小元。

在上图中,对于集合{2,3,5},极大元就是{2,3,5}、极小元也是{2,3,5};对于集合{ 1,3,5,9},极大元就是{5,9},极小元就是{1}

2、最大元、最小元
  • 如果 B 中所有的元素都是可以比较的,那么如果有一个最大元素 b,那么 b 就是最大元;
  • 如果 B 中所有的元素都是可以比较的,那么如果有一个最小元素 b,那么 b 就是最小元。
3、上界、下界
  • 对于 B 中任何一个元素 b,都有 x >> b,那么 x 就是一个上界;
  • 对于 B 中任何一个元素 b,都有 x << b,那么 x 就是一个下届;
4、最小上界、最大下界

最小上界、最大下界一定是上界、下界中的某个元素,它满足与B 中所有的元素可比较。

5、良序集

A的任何一个子集,都有最小元,则称为 A 为良序集。

整数不是良序集,这是因为良序集要求集合中的每个非空子集都有最小元素,而整数集合中的某些非空子集没有最小元素。比如:在整数集合中,一个非空子集可能没有最小元素的典型例子是负整数的集合。例如,考虑负整数的集合S = {..., -3, -2, -1},它是整数集合的一个子集。这个子集是非空的,但是没有最小元素,因为对于任何负整数n,总是存在一个更小的负整数n-1。但是自然数集合就是一个良序集。

任何一个良序集合,一定是全序集,因为良序集的所有元素都是可以比较的(如果a,b不可比较,那么他们就没有最小元,这与定义矛盾),这就形成了一个链,因此是全序集。

任何一个有限的全序集,一定是良序集,因为全序集是一个链,因此这个链的长度有限时,这个链的任何一段,一定也是有限的,因此一定有一个链尾,就是最小元。

(十)函数及其性质

函数的概念非常简单,按照函数的映射方式,可以分为三类:

  • 满射:B 中的每一个元素都能在 A 中找到像点;
  • 单射(入射):B 中的一个元素如果能在 A 中找到像点,那么只能找到一个;
  • 双射:满射且单射,就是一一映射

以上就是集合、关系和函数的一些看法,全文完,感谢阅读。

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 数据结构和离散数学有很紧密的关系离散数学是研究离散对象及其性质的数学学科,而数据结构则是研究数据如何在计算机中组织和存储的学科。 在数据结构中,我们需要使用离散数学中的很多概念和技巧,比如集合论、图论、递归论、概率论等等。这些概念和技巧为我们设计和分析数据结构提供了很多帮助。 例如,图论中的图可以用来表示数据结构中的树、图、图的遍历等等;集合论中的集合函数可以用来描述数据结构中的集合、映射等等;递归论可以帮助我们分析数据结构中的递归算法等等。因此,离散数学是数据结构学习中不可或缺的一部分。 ### 回答2: 数据结构和离散数学是密切相关的学科。离散数学是研究离散对象的数学分支,而数据结构则是处理和组织离散数据的方法和技术。两者之间存在着紧密的联系和相互依赖。 首先,离散数学为数据结构提供了理论基础和工具。离散数学的分类和组合、图论、逻辑等概念和方法可以用于描述和分析数据结构中的数据组织方式、操作规则和性质。例如,离散数学中的图论可用于研究图结构数据的存储和遍历问题;逻辑与布尔代数可以应用于逻辑数据结构的设计和操作;组合数学的排列和组合方法可以用于解决数据元素的排序和组合问题等等。 其次,数据结构为离散数学提供了实际应用场景。离散数学中的理论和方法通过数据结构可以得到有效的转化和应用。数据结构的存储、检索和操作方法可以帮助离散数学中的算法和数学模型得到实际应用,从而提高数据处理和解决实际问题的效率。例如,各种不同的数据结构(如树、图、堆等)可以用于实现各种离散数学中的算法,例如搜索算法、排序算法等。 因此,数据结构和离散数学是相互关联和相互促进的。通过数据结构的应用,离散数学的理论和方法得到了具体的实践和应用,在计算机科学中发挥着重要的作用。而离散数学的发展和研究也对数据结构的设计和应用提供了理论指导和技术支持。只有在理论和实践的相互交融中,数据结构和离散数学才能进一步发展和完善。 ### 回答3: 数据结构是计算机科学中研究数据组织和存储方式的重要学科,而离散数学是一门数学分支,研究离散对象的性质和关系。数据结构和离散数学有着密切的关系。 首先,离散数学提供了一些基本的数学工具和理论,如集合论、图论、逻辑等,这些数学工具被广泛应用于数据结构的设计和分析过程中。例如,集合论的概念可以用来描述数据结构中的元素集合以及它们之间的关系,图论可以用来研究数据结构中的图结构和图算法,逻辑可以用来分析数据结构的正确性和复杂性等。 其次,数据结构的实现和性能分析依赖于离散数学中的算法和数据结构基本概念。离散数学中的算法概念,如递归、分治、动态规划等,可以应用于数据结构的设计和实现中,帮助解决实际问题。此外,离散数学中的数据结构概念,如树、图、堆、队列等,可以直接在数据结构的实现中应用,提供了数据组织和操作的基本框架。 最后,数据结构和离散数学通过数学模型的构建和分析,能够揭示数据之间的内在关系和规律。数据结构可以被看作是一种离散对象,通过建立模型和定义规则,可以研究和解决许多实际问题。而离散数学的工具和技巧,能够帮助我们分析数据结构的性能、优化算法、解决数据关联问题等。 综上所述,数据结构和离散数学是相互关联的学科。离散数学为数据结构的设计和分析提供了基本概念和算法,而数据结构通过离散数学的方法和工具实现和优化。两者的结合,能够帮助我们更好地理解和应用数据结构,解决实际问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值