‘壹’ 逆序数怎么算
可使用直接计数法,计算一个排列的逆序数的直接方法是逐个枚举逆序,同时统计个数。
举个例子:
标准列是1 2 3 4 5,那么 5 4 3 2 1 的逆序数算法:
看第二个,4之前有一个5,在标准列中5在4的后面,所以记1个。
类似的,第三个 3 之前有 4 5 都是在标准列中3的后面,所以记2个。
同样的,2 之前有3个,1之前有4个,将这些数加起来就是逆序数=1+2+3+4=10。
(1)逆序相加心算法扩展阅读:
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。
也就是说,对于n个不同的元素,先规定各元素之间有一个标准次序(例如n个 不同的自然数,可规定从小到大为标准次序),于是在这n个元素的任一排列中,当某两个元素的实际先后次序与标准次序不同时,就说有1个逆序。
‘贰’ c语言如何实现一个正序数组和一个逆序数组相加
若已知数组a[],b[]的大小为n, 那么 用 对应 数组元素 a[i]+b[n-i-1] 即可。
例如:
int a[5]={1,2,3,4,5}, b[5]={10,9,8,7,6},sum[5];
int i,n;
n=5;
for (i=0;i<n;i++) sum[i]=a[i]+b[n-i-1]; //对应的元素相加
for (i=0;i<n;i++) printf("%d ",sum[i]); //输出结果
‘叁’ 当排列数中出现相同的数时,逆序数怎么计算,比如145243
逆序数是指一个排列中所有逆序总数,而排列,是从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列。
145243中出现出现相同的数4, 所以145243不是排列,也就无所谓计算逆序和逆序数了。
逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列。[1]如2431中,21,43,41,31是逆序,逆序数是4,为偶排列。
(3)逆序相加心算法扩展阅读
计算逆序数:
标准列是1 2 3 4 5 ,那么 5 4 3 2 1 的逆序数算法:
5之前没有数,记为0.
看第二个,4之前有一个5,在标准列中5在4的后面,所以记1个
类似的,第三个 3 之前有 4 5 都是在标准列中3的后面,所以记2个
同样的,2 之前有3个,1之前有4个
将这些数加起来就是逆序数=1+2+3+4=10
再举一个 2 4 3 1 5
4 之前有0个
3 之前有1个
1 之前有3个
5 之前有0个
所以逆序数就是1+3=4
‘肆’ 线性代数: 34215的逆序数是,怎么求,需要过程
34215的逆序数是5。
方法:
1、3后面有两个比它自己小的数,逆序数为2
2、4后面有两个比它自己小的数,逆序数为2
3、2后面有一个比它自己小的数,逆序数为1
4、1后面没有比它小的数,逆序数为0
5、5后面没有比它小的数,逆序数为0
将以上所有逆序数相加便得到总的逆序数为5。
注意:这里的“后面”都是以所取数为起点往右看。
(4)逆序相加心算法扩展阅读:
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。一个排列中所有逆序总数叫做这个排列的逆序数。换句话讲,对于n个不同的元素,先规定各元素之间有一个标准次序(例如n个 不同的自然数,可规定从小到大为标准次序),于是在这n个元素的任一排列中,当某两个元素的先后次序与标准次序不同时,就说有1个逆序。一个排列中所有逆序总数叫做这个排列的逆序数。
求逆序数的具体方法:
取排列中的每一个数,都以所取数为起点往右看,将所有的取数的逆序数相加便可得到排列的逆序数。
‘伍’ 当排列数中出现相同的数时,逆序数怎么计算,比如145243
一.
预备知识
.
这部分就是网络上一搜一大片的东西,不过还是强调一下。
.
1.
全排列
从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫n的全排列。[1]对于n的全排列,共有n!种情况。
2.
逆序、逆序数和奇、偶排列
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列。[2]
例如,对于n=3的全排列:
全排列
123
231
312
132
213
321
逆序数
0
2
2
1
1
3
奇偶性
偶
奇
.
二.
相关问题
.
1.
给定一个排列,求它的逆序数。[3]
问题:给定一个排列,求它的逆序数是多少。
分析:设
p1,p2,…,pn
为n的一个全排列,则其逆序数为t=t1+t2+…+tn=
其中
ti为排在pi
前,且比pi
大的数的个数。
这部分代码比较简单,此处略去。
.
2.
根据逆序数推排列数。[4]
问题:给定一个n元排列,它的逆序数存在且唯一。那么反过...
‘陆’ 线性代数: 34215的逆序数是,怎么求,需要过程
解:
3排在第一位,逆序数0
4前面是3,比4小,逆序数是0
2前面比2大的是3、4,逆序数是2
1前面比1大的是2、3、4,逆序数是3
5前面没有比5大的,逆序数是0
t=0+0+2+3+0=5
34215的逆序数是5
‘柒’ 什么叫逆序
跟标准列相反序数的总和
比如说
标准列是1 2 3 4 5
那么 5 4 3 2 1 的逆序数算法:
看第二个,4之前有一个5,在标准列中5在4的后面,所以记1个
类似的,第三个 3 之前有 4 5 都是在标准列中3的后面,所以记2个
同样的,2 之前有3个,1之前有4个
将这些数加起来就是逆序数=1+2+3+4=10
再举一个 2 4 3 1 5
4 之前有0个
3 之前有1个
1 之前有3个
5 之前有0个
所以逆序数就是1+3=4
这样能明白吗
‘捌’ 什么是逆序数,计算一下1432的逆序数是几
你好逆序数就是从左边第一个数开始计算,后面的数有几个比左边第一个小的话,逆序数就是几。然后从左边到右边,逐一数字计算出逆序数,然后总数相加。
比如1432
第一位是1,右边所有数都比1大,逆序数为0。
第二位4,它的右边两个数都比4小,逆序数是2
类似数出逆序数,然后累加。
1432的逆序数是3
‘玖’ 怎么算逆序数急~~~!!!
可使用直接计数法,计算一个排列的逆序数的直接方法是逐个枚举逆序,同时统计个数。
举个例子:
标准列是1 2 3 4 5,那么 5 4 3 2 1 的逆序数算法:
看第二个,4之前有一个5,在标准列中5在4的后面,所以记1个。
类似的,第三个 3 之前有 4 5 都是在标准列中3的后面,所以记2个。
同样的,2 之前有3个,1之前有4个,将这些数加起来就是逆序数=1+2+3+4=10。
(9)逆序相加心算法扩展阅读:
其它算法:
1、归并排序
归并排序是将数列a[l,h]分成两半a[l,mid]和a[mid+1,h]分别进行归并排序,然后再将这两半合并起来。在合并的过程中(设l<=i<=mid,mid+1<=j<=h),当a[i]<=a[j]时,并不产生逆序数;
当a[i]>a[j]时,在前半部分中比a[i]大的数都比a[j]大,将a[j]放在a[i]前面的话,逆序数要加上mid+1-i。因此,可以在归并排序中的合并过程中计算逆序数。
2、树状数组
由于树状数组的特性,求和是从当前节点往前求,所以,这里要查询插入当前数值之时,要统计有多少个小于该数值的数还没插入,这些没插入的数,都会在后面插入,也就形成了逆序数。
‘拾’ 【行列式】8、逆序数与行列式
这是一个范德蒙行列式,两种求法,求法不同,答案一致。一是按照范德蒙行列式的结果,从第二行入手,二是展开,这里最后一列展开, 的余子式是 即 的系数是 。两种求法联系起来,即求出范德蒙结果,并从中找出 的系数即可求出答案。
展开法(只写出一项展开):
范德蒙求法:
将含有 放前面
所以 的系数:
所以
n个不同的元素排成一列,称为n个元素的全排列。
如:12345678,76532184,等等均为8个元素的全排列。
n个元素的全排列共有n!个。
全排列123···n称为标准排列,此时元素之间的顺序称为标准顺序。在任一排列中,若某两个元素的顺序与标准顺序不同,就称这两个元素构成了一个逆序。
例:213中,2和1构成一个逆序。321中,1和2,1和3,2和3都构成逆序。
在一个排列中,逆序的总和称为逆序数。如213的逆序数为1,321的逆序数为3。
逆序数怎样求???
从第一个元素起,该元素前有几个数比它大,这个元素的逆序就是几。将所有元素的逆序相加,即得到排列的逆序数。
例:求全排列135…(2n-1)24…(2n)逆序数。
解:1,3,5,···(2n-1)不构成逆序.
2前面有n-1个数比它大,故有n-1个逆序.
4前面有n-2个数比它大,故有n-2个逆序.
依次下去,2n前面没有数比它大,故没有逆序.
将所有元素的逆序相加,得逆序数:
1+2+3+…+(n-1)=n(n-1)/2
逆序数为奇数的排列称为奇排列,逆序数为偶数的排列称为偶排列。如:
在3个元素的全排列中:
123,231,312为偶排列,逆序数分别为0,2,2.
132,213,321为奇排列,逆序数分别为1,1,3.
?:两个数对调,奇偶排列发生转化
?:奇偶排列各占一半
在一个排列中,任意对调两个元素,其余元素不变,即得到一个新排列,这样一种变换称为对换。
对换有两个性质:
1.任意一个排列经一次对换后改变奇偶性.
2.在n个元素的全排列中,奇偶排列各占一半,为n!/2.
(当n>=2时,n!一定为偶数)
性质1的证明:
对换有两种,一种相邻,一种不相邻.
若a比b大,对换后则逆序数减少一个,其余不变,所以全排列就会奇变偶,或偶变奇。若a比b小,对换后则逆序数增加一个,其余不变,所以全排列就会奇变偶,或偶变奇。
a与后面的一个个对换,对换到b后面,因为还要和b对换,所以需对换L+1次,a对换结束后,b再一个一个对换到前面,需要对换L次。所以总共对换2L+1次,相邻对换一次,奇偶变一次,2L会抵消对换,1才起作用,所以变一次,即奇变偶,或偶变奇。
性质2的证明:
假设n个元素的全排列中,有p个奇排列,有q个偶排列。把p个奇排列变化一次,变为偶排列,此时变化得到的偶排列还是属于全排列中的,所以得出p<=q,同理可证q<=p,结合两者得p=q,所以在全排列中奇偶排列各占一半。
这六项下标的第二个数是123的全排列,第一个数保持123不变,而正负号为逆序数的奇偶决定。
由三阶行列式可得如下结论
(1) 为 的逆序数。
(2)
即对1,2,3的全排列求和。
个数排成的一个 行 列的记号
其中 为全排列 的逆序数。有时简记为
例1:
例2:
例3.
附: