文章目录

  • 一、关系的定义域、值域、域
  • 二、关系的定义域、值域、域 示例
  • 三、关系的逆运算
  • 四、关系的逆序合成运算
  • 五、关系的限制
  • 六、关系的象
  • 七、单根
  • 八、单值
  • 九、合成运算的性质

一、关系的定义域、值域、域


RRR 是一个任意集合

定义域 ( Domain ) : domR={x∣∃y(xRy)}dom R = \{ x | \exist y (xRy) \}domR={x∣∃y(xRy)}

存在 yyy , xxx 与 yyy 有 RRR 关系 , RRR 关系是一个集合 , 集合中的元素是有序对 , xRyxRyxRy 是 <x,y><x,y><x,y> 有序对 ;

RRR 中的有序对 , 第一个元素是 xxx , 第二个元素是 yyy , 那么可以将该 xxx 放入定义域中 ;

RRR 关系中所有的有序对的第一个元素拿出 , 构成一个定义域 ;

值域 ( Range ) : ranR={y∣∃y(xRy)}ran R = \{ y | \exist y (xRy) \}ranR={y∣∃y(xRy)}

RRR 关系中所有的有序对的第一个元素拿出 , 构成值域 ;

域 ( Field ) : fldR=domR∪ranRfld R = dom R \cup ran RfldR=domR∪ranR

域 是 定义域 和 值域的并集 ;

二、关系的定义域、值域、域 示例


1. R1={a,b}R_1 = \{a, b\}R1​={a,b}

R1R_1R1​ 中没有有序对 , 因此其 定义域 , 值域为空 , 进而其 域 也为空 ;

domR1=∅dom R_1 = \varnothingdomR1​=∅

ranR1=∅ran R_1 = \varnothingranR1​=∅

fldR1=∅fld R_1 = \varnothingfldR1​=∅

2. R2={a,b,<c,d>,<e,f>}R_2 = \{ a, b, <c, d> , <e,f> \}R2​={a,b,<c,d>,<e,f>}

domR2={c,e}dom R_2 = \{ c, e \}domR2​={c,e}

ranR2={d,f}ran R_2 = \{ d, f \}ranR2​={d,f}

fldR2={c,d,e,f}fld R_2 = \{ c, d, e , f\}fldR2​={c,d,e,f}

3. R3={<1,2>,<3,4>,<5,6>}R_3 = \{ <1,2>, <3, 4> , <5,6> \}R3​={<1,2>,<3,4>,<5,6>}

domR3={1,3,5}dom R_3 = \{ 1, 3, 5 \}domR3​={1,3,5}

ranR3={2,4,6}ran R_3 = \{ 2, 4, 6 \}ranR3​={2,4,6}

fldR3={1,2,3,4,5,6}fld R_3 = \{ 1, 2, 3, 4,5, 6\}fldR3​={1,2,3,4,5,6}

三、关系的逆运算


任意集合 F,GF , GF,G , 这里两个集合是关系 , 集合中的元素是有序对

逆运算 ( Inverse ) :

F−1={<x,y>∣yFx}F^{-1} = \{ <x, y> | yFx \}F−1={<x,y>∣yFx}

将 FFF 关系中的所有有序对中的元素 , 前后调换方向 , 有序对中第一个元素变为第二个元素 , 第二个元素变为第一个元素 ;

如 : 将 yFxyFxyFx , 是 <y,x><y, x><y,x> 有序对 , 变成 <x,y><x, y><x,y> 有序对 ;

四、关系的逆序合成运算


逆序合成 ( Composite ) :

FoG={<x,y>∣∃z(xGz∧zFy)}FoG = \{ <x, y> | \exist z ( xGz \land zFy ) \}FoG={<x,y>∣∃z(xGz∧zFy)}

如果 关系 GGG 中有 <x,z><x,z><x,z> 有序对 , 关系 FFF 中有 <z,y><z, y><z,y> 有序对 , 就可以得到一个新的有序对 <x,y><x,y><x,y> , 该新的有序对在 关系 FFF 和 关系 GGG 的合成 运算结果中 ;

这种合成是 逆序合成 , 先用 FoGFoGFoG 中的后面的 GGG 关系的有序对 , 然后再用 前者 FFF 中的有序对 ;

逆序合成 与之对应的是顺序合成 , 一般情况下使用逆序合成 , 其性质使用方便 ;

五、关系的限制


对于任意集合 F,AF, AF,A , 可以定义

FFF 集合在 AAA 集合上的 限制 ( Restriction ) :

F↾A={<x,y>∣xFy∧x∈A}F \upharpoonright A = \{ <x, y> | xFy \land x \in A \}F↾A={<x,y>∣xFy∧x∈A}

解析 :

FFF 集合是一个关系 , 其元素是 有序对

AAA 集合是普通集合 , 其元素就是单纯的单个元素 ;

FFF 集合中的 有序对 元素中 , 如果 有序对的 第一个元素 在 AAA 集合中, 那么将这个有序对挑出来 , 放到一个新的集合中 , 这个新集合就称为 FFF 集合在 AAA 集合上的 限制 , 记作 F↾AF \upharpoonright AF↾A ;

上述 限制 ( Restriction ) 是限制 有序对中的第一个元素 ;

如果想要 限制第二个元素 , 将 FFF 集合中的有序对中的 第二个元素属于 AAA 的集合的有序对挑出来 , 可以将 FFF 关系进行逆运算 , 然后 求 F−1F^{-1}F−1 的限制 ;

限制的结果仍然是一个关系 , 其集合中的元素是有序对 ;

六、关系的象


对于任意集合 F,AF, AF,A , 可以定义

FFF 集合在 AAA 集合上的 像 ( Image ) :

F(A)=ran(F↾A)F(A) = ran(F \upharpoonright A)F(A)=ran(F↾A)

即 , FFF 在 AAA 集合上的 限制 ( Restriction ) 的值域 ;

另一种表示方式 : F[A]={y∣∃x(x∈A)∧xFy}F [A] = \{ y | \exist x ( x \in A ) \land xFy \}F[A]={y∣∃x(x∈A)∧xFy}

将 FFF 中的 有序对 挑出来 , 然后挑出有序对中第一个元素在 AAA 集合中的有序对 , 将上述 有序对的第二个元素挑出来 , 放入新的集合中 , 这个集合就 是 FFF 在 AAA 集合上的 像 ;

像 的结果不是一个关系 , 而是 符合特定要求的 有序对集合 中的有序对的第二个元素组成的集合 ;

七、单根


任意集合 FFF , 单根 ( Single Rooted ) 定义 :

FFF 是单根的

⇔\Leftrightarrow⇔

∀y(y∈ranF→∃!x(x∈domF∧xFy))\forall y ( y \in ran F \to \exist ! x( x \in domF \land xFy ) )∀y(y∈ranF→∃!x(x∈domF∧xFy))

⇔\Leftrightarrow⇔

(∀y∈ranF)(∃!x∈domF)(xFy)( \forall y \in ran F )( \exist ! x \in domF )(xFy)(∀y∈ranF)(∃!x∈domF)(xFy)

任何一个 yyy , yyy是有序对中的值域中的元素 , 有序对中与 yyy 对应的值 xxx 元素 , 即 <x,y><x, y><x,y> 构成一个有序对 , 该 xxx 存在并且唯一 ;

有序对 <x,y><x, y><x,y> 中每个 yyy 都对应着不同的 xxx

一些谓词公式说明 :

∃!\exist !∃! 表示 唯一存在 ;

∀x((x∈A→B(x))\forall x ( (x \in A \to B(x) )∀x((x∈A→B(x)) 可以缩写为 (∀x∈A)B(x)(\forall x \in A)B(x)(∀x∈A)B(x)

∃x(x∈A∧B(x))\exist x ( x \in A \land B(x) )∃x(x∈A∧B(x)) 可以缩写为 (∃x∈A)B(x)(\exist x \in A)B(x)(∃x∈A)B(x)

八、单值


任意集合 FFF , 单值 ( Single Value ) 定义 :

FFF 是单值的

⇔\Leftrightarrow⇔

∀x(x∈domF→∃!y(y∈ranF∧xFy))\forall x ( x \in dom F \to \exist ! y( y \in ranF \land xFy ) )∀x(x∈domF→∃!y(y∈ranF∧xFy))

⇔\Leftrightarrow⇔

(∀x∈domF)(∃!y∈ranF)(xFy)( \forall x \in dom F )( \exist ! y \in ranF )(xFy)(∀x∈domF)(∃!y∈ranF)(xFy)

任何一个 xxx , xxx是有序对中的定义域域中的元素 , 有序对中与 xxx 对应的值 yyy 元素 , 即 <x,y><x, y><x,y> 构成一个有序对 , 该 yyy 存在并且唯一 ;

有序对 <x,y><x, y><x,y> 中每个 xxx 都对应着不同的 yyy

九、合成运算的性质


R1,R2,R3R_1, R_2, R_3R1​,R2​,R3​ 是三个集合 , 则有以下性质 :

(R1oR2)oR3=(R1o(R2oR3))(R_1 o R_2) o R_3 = (R_1 o ( R_2 o R_3 ))(R1​oR2​)oR3​=(R1​o(R2​oR3​))

F,GF, GF,G 是两集合 , 有以下性质 :

(FoG)−1=G−1oF−1(F o G)^{-1} = G^{-1} o F^{-1}(FoG)−1=G−1oF−1

合成运算的逆 等于 两个集合逆的合成 ;

【集合论】二元关系 ( 定义域 | 值域 | 域 | 逆运算 | 逆序合成运算 | 限制 | 像 | 单根 | 单值 | 合成运算的性质 )相关推荐

  1. c语言将一个已知头结点的单链表逆序_C语言数据结构实现链表逆序并输出

    C语言数据结构实现链表逆序并输出 将一个链表逆序并输出.我用了两种方法来实现,第一种是借助了一个新的空链表:第二种是在原来链表的基础上直接实现逆序. 实例代码: 头文件: #include #incl ...

  2. c语言实现链表的逆序输出,C语言数据结构实现链表逆序并输出

    C语言数据结构实现链表逆序并输出 将一个链表逆序并输出.我用了两种方法来实现,第一种是借助了一个新的空链表:第二种是在原来链表的基础上直接实现逆序. 实例代码: 头文件: #include #incl ...

  3. C语言的单链表逆序和指定范围逆序

    文章目录 前言 逆序 指定范围逆序 源码实现 前言 关于链表的逆置,是考察对链表指针的理解.知道了如何不实用额外空间,同时使用O(n)复杂度对链表进行逆序之后将会对链表有好理解. 同时关于如何在指定范 ...

  4. 【数据结构】单链表的逆序输出(两种方法)

    第一种方法:转换指针方向 即:将一个已经创建好的单链表进行指针域的改变 今天突然被问到单链表逆序的问题,弄了好久才看出别人的程序有啥问题,就重新写了一遍. 今天才在CSDN客户端上看到美团的面试题是冒 ...

  5. 单链表之无头和有头--逆序

    在介绍单链表逆序操作之前,首先好好地介绍下有头与无头单链表的区别: 一.概念辨析 线性表的插入删除需要移动大量的元素,因此引入链表(本文讨论单链表)的概念,链表元素之间通过"链"来 ...

  6. 通用版!完整代码,单链表SingleLinkedList增删改查,反转,逆序,有效数据等Java实现

    文章目录 节点类 链表类(主要) 测试类 小结 节点类 可以根据需要,对节点属性进行修改.注意重写toString()方法,以便后续的输出操作. //节点类 class Node {public in ...

  7. 链表逆序(JAVA实现)

    题目:将一个有链表头的单向单链表逆序 分析: 链表为空或只有一个元素直接返回: 设置两个前后相邻的指针p,q,使得p指向的节点为q指向的节点的后继: 重复步骤2,直到q为空: 调整链表头和链表尾: 图 ...

  8. 大厂面试算法系列-如何实现链表的逆序(一)-原地逆序

    题目描述   给定一个带有头节点的单向列表,将这个链表进行逆序.例如head->1->3->4->2,逆序之后变成head->2->4->3->1 题目 ...

  9. 单链表实现一元多项式相加_python面试系列 01如何实现单链表的逆序

    题目介绍 来源:腾讯笔试                         难度系数:★★★☆☆                  考察频率:★★★★☆ 题目描述: 给定一个带头结点的单链表,请将其逆序 ...

最新文章

  1. 网站建设教程:新手如何建设自己的网站?
  2. PAT甲级1126 Eulerian Path:[C++题解] 欧拉路径、并查集,测试点4有问题请进来
  3. mysql 变量set
  4. python_day02 上节课知识点回顾
  5. 如何浅显得理解风控模型中的特征筛选|附实操细节(全)
  6. js中innerHTML与innerText的用法与区别【转自http://blog.sina.com.cn/johnpu】
  7. zeptojs库解读1之整体框架
  8. python画柱状图-Python 使用 matplotlib 画柱状图教程
  9. JavaSE学习脑图
  10. 计算机科普小知识大全,电脑小白知识科普 10个Win10实用技巧科普
  11. Photoshop插件-HDR(二)-脚本开发-PS插件
  12. 中英文电子书免费下载网站大全
  13. 五一南京-无丝竹无案牍
  14. 下载安装了zotero,为什么word没显示zotero的加载项
  15. Linux nodejs 安装以及配置环境
  16. RouterOS 常用命令、用法及官方资料
  17. 身为程序员还看不懂UML类图? 一文带你零基础学会看UML类图!
  18. python 英语翻译_python中英文翻译
  19. 新世纪的群众性幻想与癫狂
  20. 7月火影忍者服务器维护,7月12日停机更新公告

热门文章

  1. ZedGraph在Asp.net中的应用
  2. 站长常用广告代码的表达大全
  3. 石川es6课程---6、解构赋值
  4. 一个JavaBean和DTO转换的优秀案例
  5. IDEA 调试Spring-boot 应用
  6. 前端开发周边(js版页内锚点跳转方法)
  7. BZOJ3996 [TJOI2015]线性代数 【最小割】
  8. 级联下拉框效果,动态加载图片
  9. 在Archlinuxarm上搭建Minecraft基岩服务器
  10. zabbix监控超详细搭建过程