按6个算法求839647521后的第999个排列
一.字典法
原理:将原排列数字从左到右,依次查看数字右侧比其小的数字有几个。
原数字 :839647521
原递增中介数:
8右侧比8小的有7个数字(3647521)
3右侧比3小的有2个数字(21)
9右侧比9小的有6个数字(647521)
6右侧比6小的有4个数字(4521)
4右侧比4小的有2个数字(21)
7右侧比7小的有3个数字(521)
5右侧比5小的有2个数字(21)
2右侧比2小的有1个数字(1)
所以,原中介数=72642321
原序号 :7*8!+2*7!+6*6!+4*5!+2*4!+3*3!+2*2!+1*1!=297191
新序号 :297191+999=298190
新递增中介数:
(法1)因为比序号999小的最大阶乘是6!(6!=720 7!=5040),直到余数为 0
999 /6!=1余279
279 /5!=2余39
39 /4!=1余15
15 /3!=2余3
3 /2!=1余1
1 /1!=1余0
因此序号999的"递增进位制数"就是121211
所以:新递增中介数=原中介数+999的递增进位制数
=72642321+121211
765432
=73104210
(法2)因为比新序号298190小的最大阶乘是8!(8!=40320 9!=362880)
298190/8!=7余15950
15950 /7!=3余830
830 /6!=1余110
110 /5!=0余110
110 /4!=4余14
14 /3!=2余2
2 /2!=1余0
0 /1!=0
所以:新中介数=73104210
新数字 : 从左往右数N个空格,填上对应数字
1 2 3 4 5 6 7 8 9
7 _ _ _ _ _ _ _ 8 数7个空格
3 _ _ _ 4 数3个空格
1 _ 2 数1个空格
0 1 数0个空格
4 _ _ _ _ 9 数4个空格
2 _ _ 6 数2个空格
1 _ 5 数1个空格
0 3 数0个空格
7 补7
所以新数字为从上往下为:842196537
二.递增进位法
原理:将原排列按照从 9 到 2 的顺序,依次查看其右侧比其小的数字的个数。
原数字 :839647521
原递增中介数:
9右侧比9小的有6个数字(647521),
8右侧比8小的有7个数字(3647521)
7右侧比7小的有3个数字(521)
6右侧比6小的有4个数字(4521)
5右侧比5小的有2个数字(21)
4右侧比4小的有2个数字(21)
3右侧比3小的有2个数字(21)
2右侧比2小的有1个数字(1)
所以,原中介数=67342221
原序号 :6*8!+7*7!+3*6!+4*5!+2*4!+2*3!+2*2!+1*1!=279905
新序号 :279905+999=280904
新递增中介数:
(法1)因为比序号999小的最大阶乘是6!(6!=720 7!=5040),直到余数为 0
999 /6!=1余279
279 /5!=2余39
39 /4!=1余15
15 /3!=2余3
3 /2!=1余1
1 /1!=1余0
因此序号999的"递增进位制数"就是121211
所以:新递增中介数=原中介数+999的递增进位制数
=67342221+121211
765432
=67504110
(法2)因为比新序号280904小的最大阶乘是8!(8!=40320 9!=362880)
280904/8!=6余38984
38984 /7!=7余3704
3704 /6!=5余104
104 /5!=0余104
104 /4!=4余8
8 /3!=1余2
2 /2!=1余0
0 /1!=0
所以:新中介数=67504110
新数字 : 从空格的右侧向左数,从9填到2,最后一个空格里补1.
9 8 7 6 5 4 3 2 1
6 9 _ _ _ _ _ _ 从右向左数6个空格,填9
7 8 _ _ _ _ _ _ _ 从右向左数7个空格,填8
5 7 _ _ _ _ _ 从右向左数5个空格,填7
0 6 从右向左数0个空格,填6
4 5 _ _ _ _ 从右向左数4个空格,填5
1 4 _ 从右向左数1个空格,填4
1 3 _ 从右向左数1个空格,填3
0 2 从右向左数0个空格,填2
1 补1
所以新数字从左往右为: 859713426
三.递减进位法
原理:将原排列按照从 2 到 9 的顺序,依次查看其右侧比其小的数字的个数。
原数字 :839647521
原递减中介数:
2右侧比2小的有1个数字(1),
3右侧比3小的有2个数字(21)
4右侧比4小的有2个数字(21)
5右侧比5小的有2个数字(21)
6右侧比6小的有4个数字(4521)
7右侧比7小的有3个数字(521)
8右侧比8小的有7个数字(3647521)
9右侧比9小的有6个数字(647521)
所以,原中介数=12224376
原序号: (2 3 4 5 6 7 8 9)
(1 2 2 2 4 3 7 6)
1*3+2)4+2)5+2)6+4)7+3)8+7)9+6 =340989
新序号 :340989+999=341988
新递减中介数:
(法1):序号999除以9所得余数就是"递减进位制数"的最末位;商继续除8... 一直除到"商0"
999 /9=111余0
111 /8=13 余7
13 /7=1 余6
1 /6=0 余1
因此序号"999"的"递减进位制数"就是1670
所以:新递减中介数=原中介数+999的递增减位制数
=12224376+1670
456789
=12230366
(法2)新序号341988除以9所得余数就是"递减进位制数"的最末位;商继续除8... 一直除到"商0"
341988/9=37998余6
37998 /8=4749 余6
4749 /7=678 余3
678 /6=113 余0
113 /5=22 余3
22 /4=5 余2
5 /3=1 余2
1 /2=0 余1
所以:新递减中介数=12230366
新数字 : 从空格的右侧向左数,从9填到2,最后一个空格里补1.
9 8 7 6 5 4 3 2 1
6 9 _ _ _ _ _ _ 从右向左数6个空格,填9
6 8 _ _ _ _ _ _ _ 从右向左数6个空格,填8
3 7 _ _ _ 从右向左数3个空格,填7
0 6 从右向左数0个空格,填6
3 5 _ _ _ 从右向左数3个空格,填5
2 4 _ _ 从右向左数2个空格,填4
2 3 _ _ 从右向左数2个空格,填3
1 2 _ 从右向左数1个空格,填2
1 补1
所以新数字从左往右为: 389547216
四.循环左移
原理:将原排列按照从 9 到 2 的顺序.对于9产生的中介数字依然是9的右边比 9小的数字的个数.
但从8开始一直到2依次查看其左侧比其小的数字的个数,说不定要绕一圈。
原数字 :839647521
原递减中介数:
9右侧比 9小的有6个数字(647521)
9到8左循环比8小的有1个数字(3)
8到7左循环比7小的有3个数字(521)
7到6左循环比6小的有1个数字(4)
6到5左循环比5小的有3个数字(321)
5到4左循环比4小的有0个数字
4到3左循环比3小的有0个数字
3到2左循环比2小的有1个数字(1)
所以,原递减中介数=10031316
原序号:
(2 3 4 5 6 7 8 9)
(1 0 0 3 1 3 1 6)
1*3+0)4+0)5+3)6+1)7+3)8+1)9+6 =191247
新序号 :191247+999=192246
新递减中介数:
(法1):序号999除以9所得余数就是"递减进位制数"的最末位;商继续除8... 一直除到"商0"
999 /9=111余0
111 /8=13 余7
13 /7=1 余6
1 /6=0 余1
因此序号"999"的"递减进位制数"就是1670
所以:新递减中介数=原中介数+999的递增减位制数
=10031316+1670
456789
=10033306
(法2)新序号192246除以9所得余数?
192246/9=21360余6
21360 /8=2670 余0
2670 /7=381 余3
381 /6=63 余3
63 /5=12 余3
12 /4=3 余0
3 /3=1 余0
1 /2=0 余1
所以:新递减中介数=10033306
新数字 : 从空格的右侧向左数,从9填到2,最后一个空格里补1.
9 8 7 6 5 4 3 2 1
6 9 _ _ _ _ _ _ 从右向左数6个空格,填9
0 8 从9向左循环0个 ,填8
3 _ 7 _ _ 从8向左循环3个 ,填7
3 6 _ _ _ 从7向左循环3个 ,填6
3 5 _ _ _ 从6向左循环3个 ,填5
0 4 从5向左循环0个 ,填4
0 3 从4向左循环0个 ,填3
1 2 _ 从3向左循环1个 ,填2
1 补1
所以新数字从左往右为: 689452713
五.邻位对换法
原理:
记住:偶向左,奇向右;2的方向一定是向左.
从 2 开始确定每一个数字的方向性
i为大于2的数字:
(1)如果i为奇数,其方向性为 b(i-1)的奇偶性
(2)如果i为偶数,其方向性为 b(i-1)+b(i-2)的奇偶性
原数字 :839647521
原递减中介数:
2的方向左,背向2的方向中比2小的数字有1个(1), ,b2=1
3的方向(b2=1为奇)向右, 背向3方向中比3小的数字有0个, ,b3=0
4的方向(b2+b3=1+0=1为奇)向右,背向4方向中比4小的数字有1个(3) ,b4=1
5的方向(b4=1为奇)向右, 背向5方向中比5小的数字有2个(34) ,b5=2
6的方向(b4+b5=1+2=3为奇)向右,背向6方向中比6小的数字有1个(3) ,b6=1
7的方向(b6=1为奇)向右, 背向7方向中比7小的数字有3个(364) ,b7=3
8的方向(b6+b7=1+3=4为偶)向左,背向8方向中比8小的数字有7个(3647521),b8=7
9的方向(b8=7)为奇向右, 背向9方向中比9小的数字有2个(83) ,b9=2
所以,原递减中介数=10121372
原序号:
(2 3 4 5 6 7 8 9)
(1 0 1 2 1 3 7 2)
1*3+0)4+1)5+2)6+1)7+3)8+7)9+2 =203393
新序号: 203393+999=204392
新递减中介数:
(法1):序号999除以9所得余数就是"递减进位制数"的最末位;商继续除8... 一直除到"商0"
999 /9=111余0
111 /8=13 余7
13 /7=1 余6
1 /6=0 余1
因此序号"999"的"递减进位制数"就是1670
所以:新递减中介数=原中介数+999的递增减位制数
=10121372+1670
456789
=10123362
(法2)新序号204393除以9所得余数
204392/9=22710余2
22710 /8=2838 余6
2838 /7=405 余3
405 /6=67 余3
67 /5=13 余2
13 /4=3 余1
3 /3=1 余0
1 /2=0 余1
所以:新递减中介数=10123362
新数字 :
(b2 b3 b4 b5 b6 b7 b8 b9)
(1 0 1 2 3 3 6 2 )
以从 9 到 2 的填充顺序依次计算他们的位置。
9 8 7 6 5 4 3 2 1
2 9 _ _ <-- 9的方向(b8=6为偶) 向左,数2个空格,填9
6 8 _ _ _ _ _ _ <-- 8的方向(b7+b6=3+3=6为偶)向左,数6个空格,填8
3--> _ _ _ 7 7的方向(b6=3为奇) 向右,数3个空格,填7
3--> _ _ _ 6 6的方向(b5+b4=2+1=3为奇)向右,数3个空格,填6
2--> _ _ 5 5的方向(b4=1为奇) 向右,数2个空格,填5
1--> _ 4 4的方向(b3+b2=0+1=1为奇)向右,数1个空格,填4
0--> 3 3的方向(b2=1为奇) 向右,数0个空格,填3
1 2 _ <-- 2的方向必为向左 ,数1个空格,填2
1 补1
所以新数字从左往右为: 384576921
六.循环左右移
记住:偶向左,奇向右;2的方向一定是向左.
从 2 开始确定每一个数字的方向性.
i为大于2的数字:
(1)如果i为奇数,其方向性为 b(i-1)的奇偶性
(2)如果i为偶数,其方向性为 b(i-1)+b(i-2)的奇偶性
确定数字的方向性决定了搜索左循环区间还是右循环区间,说不定要绕一圈.
原数字 :839647521
原递减中介数:
2的方向左,背向2的方向到3的区间[18]比2小的数字有1个(1), ,b2=1
3的方向(b2=1为奇)向右, 背向3方向到4的区间[81257]比3小的数字有2个(12),b3=2
4的方向(b2+b3=1+2=3为奇)向右,背向4方向到5的区间比4小的数字有3个(312) ,b4=3
5的方向(b4=3为奇)向右, 背向5方向到6的区间比5小的数字有1个(4) ,b5=1
6的方向(b4+b5=3+1=4为偶)向左,背向6方向到7的区间比6小的数字有1个(4) ,b6=1
7的方向(b6=1为奇)向右, 背向7方向到8的区间比7小的数字有3个(463) ,b7=3
8的方向(b6+b7=1+3=4为偶)向左,背向8方向到9的区间比8小的数字有1个(3) ,b8=1
9的方向(b8=1)为奇向右, 背向9方向到边界比9小的数字有2个(38) ,b9=2
所以,原递减中介数=12311312
原序号:
(2 3 4 5 6 7 8 9)
(1 2 3 1 1 3 1 2)
1*3+2)4+3)5+1)6+1)7+3)8+1)9+2 = 351515
新序号: 351515+999=352514
新递减中介数:
(法1):序号999除以9所得余数就是"递减进位制数"的最末位;商继续除8... 一直除到"商0"
999 /9=111余0
111 /8=13 余7
13 /7=1 余6
1 /6=0 余1
因此序号"999"的"递减进位制数"就是1670
所以:新递减中介数=原中介数+999的递增减位制数
=12311312+1670
456789
=12313302
(法2)新序号352514除以9所得余数
352514/9=39168余2
39168 /8=4896 余0
4896 /7=699 余3
699 /6=116 余3
116 /5=23 余1
23 /4=5 余3
5 /3=1 余2
1 /2=0 余1
所以:新递减中介数=12313302
新数字 :
(b2 b3 b4 b5 b6 b7 b8 b9)
(1 2 3 1 3 3 0 2 )
以从 9 到 2 的填充顺序依次计算他们的位置。
9 8 7 6 5 4 3 2 1
2 9 _ _ <-- 9的方向(b8=0为偶) 向左 ,数2个空格,填9
0 8 --> 8的方向(b7+b6=3+3=6为偶)向左,从9往左数0个空格,填8
3 _ 7 _ _ --> 7的方向(b6=3为奇) 向右,从8往右数3个空格,填7
3 _ 6 _ _ <-- 6的方向(b5+b4=1+3=4为偶)向左,从7往左数3个空格,填6
1 _ 5 --> 5的方向(b4=3为奇) 向右,从6往右数1个空格,填5
3 _ _ _ 4 --> 4的方向(b3+b2=2+1=3为奇)向右,从5往右数3个空格,填4
2 _ _ 3 --> 3的方向(b2=1为奇) 向右,从4往右数2个空格,填3
1 2 _ <-- 2的方向必为 向左,从3往左数1个空格,填2
1 补1
所以新数字从左往右为: 271368945