大家好,又见面了,我是你们的朋友全栈君。
数学上,单射、满射和双射指根据其定义域和陪域的关联方式所区分的三类函数。
- 单射:指将不同的变量映射到不同的值的函数。
- 满射:指陪域等于值域的函数。即:对陪域中任意元素,都存在至少一个定义域中的元素与之对应。
- 双射(也称一一对应):既是单射又是满射的函数。直观地说,一个双射函数形成一个对应,并且每一个输入值都有正好一个输出值以及每一个输出值都有正好一个输入值。 (在一些参考书中,“一一”用来指双射,但是这里不用这个较老的用法。)
下图对比了四种不同的情况:
[编辑]单射(one to one或injective)
一个函数称为单射(一对一)如果每个可能的像最多只有一个变量映射其上。等价的有,一个函数是单射如果它把不同值映射到不同像。一个单射函数简称单射。形式化的定义如下。
- 一个函数f : A → B是单射当且仅当A是空的或f是左可逆的,也就是说,存在一个函数g: B → A 使得g o f = A上的恒等函数.
- 因为每个函数都是满射当它的陪域限制为它的值域时,每个单射导出一个到它的值域的双射。更精确的讲,每个单射f : A → B可以分解为一个双射接着一个如下的包含映射。令fR : A → f(A)为把陪域限制到像的f,令i : f(A) → B为从f(A)到B中的包含映射.则f = i o fR. 一个对偶的分解会对满射成立。
- 两个单射的复合也是单射,但若g o f是单射,只能得出f是单射的结论。参看右图。
[编辑]满射(onto)
一个函数称为满射如果每个可能的像至少有一个变量映射其上,或者说陪域任何元素都有至少有一个变量与之对应。形式化的定义如下:
- 函数为一个满射,当且仅当存在一个函数满足等于上的单位函数。(这个陈述等同于选择公理。)
- 将一个满射的陪域中每个元素的原像集看作一个等价类,我们可以得到以该等价类组成的集合(原定义域的商集)为定义域的一个双射。
- 如果和皆为满射,则为满射。如果是满射,则仅能得出是满射。参见右图。
[编辑]双射(bijective)
既是单射又是满射的函数称为双射. 函数为双射当且仅当每个可能的像有且仅有一个变量与之对应。
- 函数f : A → B为双射当且仅当其可逆,即,存在函数g: B → A满足g o f = A上的恒等函数,且f o g为B上的恒等函数。
- 两个双射的复合也是双射。如g o f为双射,则仅能得出f为单射且g为满射。见右图。
- 同一集合上的双射构成一个对称群。
- 如果皆为实数,则双射函数可以被视觉化为两根任意的水平直线只相交正好一次。(这是水平线测试的一个特例。)
[编辑]势
双射函数经常被用于表明集合X和Y是等势的,即有一样的基数。如果在两个集合之间可以建立一个一一对应,则说这两个集合等势。
如果皆为有限集合,则这两个集合中之间存在一个双射,当且仅当X和Y的元素数相等。其实,在公理集合论中,元素数相同的定义被认为是个特例,一般化这个定义到无限集合需要导入基数的概念,这是一个区别各类不同大小的无限集合的方法。
[编辑]举例
对于每个函数给定定义域和陪域很重要,因为改变这些就能改变函数属于什么射。
[编辑]双射
[编辑]单射、但非满射
- 指数函数
[编辑]满射、但非单射
[编辑]即非单射也非满射
[摘自wikipedia]
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136541.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...