致敬百度百科qwq
本文摘自百度百科,只是对于信竞范围内的知识做一个小总结qwq,持续更新ing···
满射:
如果每个可能的像至少有一个变量映射其上(即像集合B中的每个元素在A中都有一个或一个以上的原像),或者说值域任何元素都有至少有一个变量与之对应,那这个映射就叫做满射。
满射或盖射(英语:surjection、onto),或称满射函数或映成函数,一个函数 为满射,则对于任意的陪域Y中的元素 y,在函数的定义域X中存在一点 x使得f(x)=y。换句话说, f是满射时,它的值域f(X)与陪域Y相等,或者,等价地,如果每一个陪域中的元素 其原像不等于空集合。
单射:
设f是由集合A到集合B的映射,如果所有x,y∈A,且x≠y,都有f(x)≠f(y),则称f为由A到B的单射。在数学里,单射函数为一函数,其将不同的引数连接至不同的值上。更精确地说,函数f被称为是单射时,对每一值域内的y,存在至多一个定义域内的x使得f(x) = y。另一种说法为,f为单射,当f(a) = f(b),则a = b(若a≠b,则f(a)≠f(b)),其中a、b属于定义域。单射在某些书中也叫入射,可理解成“原不同则像不同”。
双射:
双射(Bijection)的原理是一组关系,在判别某一种想法在应用能否双向的找到某一唯一对应的事物,理论上通常要判断这种想法是否满足双射的关系。因为具体的实施这一想法的途径我们是并不知道的,所以需要抽象出他们的关系,找到这个双射,如果找不到,并且验证这个双射不存在,那么想法是不可能实现的。
康托展开:
康托展开运算:
其中, 为整数,并且
。
表示原数的第i位在当前未出现的元素中是排在第几个
康托展开的逆运算:
既然康托展开是一个双射,那么一定可以通过康托展开值求出原排列,即可以求出n的全排列中第x大排列。
如n=5,x=96时:
首先用96-1得到95,说明x之前有95个排列.(将此数本身减去1)用95去除4! 得到3余23,说明有3个数比第1位小,所以第一位是4.用23去除3! 得到3余5,说明有3个数比第2位小,所以是4,但是4已出现过,因此是5.用5去除2!得到2余1,类似地,这一位是3.用1去除1!得到1余0,这一位是2.最后一位只能是1.所以这个数是45321。
按以上方法可以得出通用的算法。
莫比乌斯反演:
设
和
是定义在正整数集合上的两个函数,定义如下。
.
则