【离散数学】单射、满射与双射

【离散数学】单射、满射与双射本文目录1、什么是映射?1、什么是映射?我们考虑这样的关系:对于集合X中的每一个元素,都有唯一的属于集合Y中的元素被其所指向,我们就称这样的关系叫映射(英:mapping,日:写像(しゃぞう))。这是用很通俗的语言解释定义的映射,而相信大家也都在高中数学必修1里面学过,对映射这个概念想必也都不陌生吧!从这个定义中,你能get到什么信息呢?①“X集合中的每一个元素”:如果有集合X的元素不对应集合Y的某个元素的,则不是映射。②“都有唯一的Y与之对应”:如果有集合X的元素同时指向了集合Y中的两个以上个元

大家好,又见面了,我是你们的朋友全栈君。

1、什么是映射?

我们考虑这样的关系:对于集合X中的每一个元素,都有唯一的属于集合Y中的元素被其所指向,我们就称这样的关系叫映射(英:mapping,日:写像(しゃぞう))。这是用很通俗的语言解释定义的映射,而相信大家也都在高中数学必修1里面学过,对映射这个概念想必也都不陌生吧!
从这个定义中,你能get到什么信息呢?
①“X集合中的每一个元素”:如果有集合X的元素不对应集合Y的某个元素的,则不是映射。
②“都有唯一的Y与之对应”:如果有集合X的元素同时指向了集合Y中的两个以上个元素的,则不是映射。

因此,要进入到对今天的主题——单射、满射与双射的区分,首先你得判断,是不是集合X中的所有元素都指向,且只指向了集合Y当中的一个元素呢?只有if(判定的结果==true)时,我们才可以进行下一步的区分判断;else,它连映射都不是,还判断个什么呢?
这就好比,如果说你是一个高三的学生,你连高一年级都不属于,还要去问你是不是高一(7)班的吗?

小结:如果两个集合各自的元素之间的指向关系满足以下两个条件,它就是一个映射关系。此时方可进一步判断,它具体是哪一种映射了。
(1)集合X中的所有元素均有指向集合Y中的某元素,而没有谁不指向的;
(2)集合X中的所有元素均只指向了集合Y中的一个元素,而没有谁指向两个或更多的。

2、映射的分类

2.1 单射

所有被X里的元素指向的Y里的元素,都是只被一个X的元素所指向的,而没有被两个或更多X的元素所指向,那么这种映射关系就叫单射(英:injection,日:単射(たんしゃ))。
单射不考虑是否Y当中的所有元素都无一遗漏地被X的元素所指向了。也可以有Y的元素不被任何X的元素所指向,不影响它是单射。

举个例子。

就比如说看电影吧。有“观众”(X)和“座位”(Y)两个集合。现在我们知道,每一个观众必然会坐在一个座位上,并且他只坐在一个座位上,所以这个对应关系首先是个映射
又因为每张座位只可被一个观众所对应,不可能一张座上坐两个人,且不是所有座位都一定有观众与之对应的,也可能会有空座位,所以这个对应关系是一种单射关系。

在这里插入图片描述
观众与电影院座位(单射):
①要么没人坐;
②要么只有一个人坐。
(要么不被任何观众所指向,要么只被一个观众所指向)

2.2 满射

Y集合里的所有元素均被X里的元素所指向,集合Y中没有任何一个元素不被集合X的元素所指向的,那么这种映射关系就叫满射(英:surjection,日:全射(ぜんしゃ))。
满射不考虑指向同一个Y的有多少个X。只要所有的Y都被指向到了,就是满射。

再举个例子。

比如说班上分小组吧。每个组至少有一个人,否则就不构成一个组(它就不存在)。那么,每个学生都属于且只属于一个组,这首先是映射。又因为每个组必然包含至少一个学生,也可能有多个学生,所以,“学生”集合(X)与“小组”集合(Y)之间的关系,就是一种满射关系。
在这里插入图片描述

学生与分组(满射):
①要么分组不存在;
②只要存在这个分组,它就一定被一个或多个学生所指向。

2.3 双射

既是单射,又是满射的映射,就叫做双射(英:bijection,日:全単射(ぜんたんしゃ))。
“所有Y中的元素均被X中的元素所指向,且只被X的一个元素所指向。没有不被指向的,也没有被两个或更多X的元素所指向的。”

举个例子。

最典型的,“学生”(X)与其“学生证号码”(Y)。每个学生都必然有且只有一个学生证号,所以这首先是映射。又因为,每个学生证号码都必然被且只被一个学生所指向,没有不被任何学生指向的学生证号码(它是满射),也没有同时被多个学生指向的学生证号码(它也是单射),所以,这个映射关系是一种双射关系。

在这里插入图片描述
学生与学生证号码(双射):
一一对应,互为在彼此的集合里有且只有对方一个与自己相对应的元素。

2.4 既非单射也非满射,但为映射

还有一种映射关系,既不是单射也不是满射。Y中有元素没被X的元素所指向,而被指向的Y的元素,也不是所有都只被一个X元素所指向(存在被多个X元素指向的)。

举个例子。

比如围棋比赛吧。有“棋手”(X)和“棋盘”(Y)两个集合。一个棋手在且只在一个棋盘上下棋,一个棋盘上却有两个棋手。但是,并不是所有的棋盘都会有棋手的。比如,有3个棋盘,却只有4位棋手,那么,必然有一个棋盘是空的,不被任何棋手所指向。
每一个棋手指向且仅指向一个棋盘,这是映射。但是,既不是每个棋盘都必被棋手所指向,也不是每个被指向的棋盘都无一例外只被一个棋手所指向的,所以这种映射关系,既不是满射,也不是单射

在这里插入图片描述

3、你掌握了吗?

你学废了吗?来,来,来,拿出你的小本本和笔,做两道题来练一下吧!
在这里插入图片描述
一共有六道题。写出两个集合之间是否存在映射关系,如果存在,写出是哪一种映射关系。
要求:从“单射而非满射”、“满射而非单射”、“双射”、“不是单射也不是满射”、“不是映射”中选词作答。

答案将会在评论区公布。

4、心得

我又听见了那句上学时经常听到的问题:“我知道这个有什么用?我买菜需要用到它吗?”
嗯,你买菜当然不会用到它,你不会跟摊主说,你这菜和你人之间有什么映射关系。
但是,比如说,你在设计数据库的时候,就可以和同一个组的小伙伴讨论道,“这个字段应该是主键。因为它值的集合与这个表中记录的集合呈双射关系。”
而不会是这样的:
“emmm……啊??主键,我觉得大概可能是这个属性啊。为什么呢?因为……我也说不上来,大概,就是因为那个,它是唯一的。啊不,它可以唯一确定一个人……emmm,一个人只拥有一个这种属性,这种属性也只对应一个人……emmmm,大概也许就是这样吧,我也不是太清楚,我也不太确定,你自己再考虑考虑吧!”

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/132776.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • LoadRunner教程01:性能测试常见用语

    LoadRunner教程01:性能测试常见用语1、并发用户数量:常见的错误理解:使用系统的全部用户数量使用系统的全部在线用户数量正确理解:与服务器进行交互的在线用户数量2、请求响应时间:从client发出请求到得到响应的整个时间,一般包括网络响应时间+server的响应时间3、事务请求响应时间:完成这个事务所用的时间,这个是性能测试中重点关注的指标4、吞吐率:单位时间在网络上传输的数据量(从服务端返

  • divmod( )函数[通俗易懂]

    divmod( )函数[通俗易懂]>>divmod(5,2)>>(2,1)divmod函数可同时返回商和余数。

    2022年10月30日
  • 图片变透明之opacity属性

    图片变透明之opacity属性CSS3图像透明度开发工具与关键技术:DW-opacity属性作者:徐晶旗撰写时间:2019年1月18日利用opacity属性来改变图片的透明度,opacity属性能够设置的值从0.0到1.0。值越小,图片越透明。下面这几张图片是执行代码得出的效果,第一张图片没有给它设置opacity值,所以它呈现的是原图,没有透明的效果,后面几张图设置的opacity值越来越小,可…

  • java对象复制和属性值复制工具类[通俗易懂]

    java对象复制和属性值复制工具类[通俗易懂]两个不同类型的对象中有字段名称不区分大小写的情况下一样,字段含义一样,需要组装到另一个对象中去,然后就写了一个这种工具类我的类型比较特殊,老系统和新系统的对象命名大小写命名不一致,并且字段相同类型也有不一致的情况,所以自己写了一个,不是很完美基本能用。温馨提示:如果同一种类型的对象属性字段名equals相等并且类型一致。则完全可以用commons-beanutils包或者spring包

  • JQuery Div scrollTop ScrollHeight

    JQuery Div scrollTop ScrollHeightjQuery里和滚动条有关的概念很多,但是有三个属性和滚动条的拖动有关,就是:scrollTop、scrollLeft、scrollHeight。其中scrollHeight属性,互联网上几乎搜素不到关于它的应用技巧,而我正好需要用到它。我们现在只探讨和垂直滚动有关的scrollTop、scrollHeight属性。一、滚动条有关属性的正确理解:假设有以下Html代码:

  • 数据库的建立、增、删、改、查[通俗易懂]

    数据库的建立、增、删、改、查[通俗易懂]快来快来一起学技术吧!数据库的建立、增、删、改、查,有图,有文,有例子!

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号