关于一组多位数根据排序找到对应数的简便算法(自己推想)
对于一些6位数,其中的每个数字由1,2,3,4,5,6,组成,排序任意,特点是,必须包含1,2,3,4,5,6,是任意组合,而且不能重复。也就是说这些6位数字是由1,2,3,4,5,6组成的,并且是这些组成的集合,如果从这些数字的最大排到最小值,求第234个数字是多少?关于这个问题我是这么想的,
1,2,3,4,5,6
第234个数,
可以先算234最接近哪个自然数的阶乘,
应该是5,
234-5!=234-120=114,
由此可以确定第120个数是612345,第121个数是564321,因为6后面的5个数已经进行完了全排列,那么第120个数就应该是6后面的最小的排列,因为咱们出题是按照从大到小的顺序去算的,那么第120个数应该是
612345,第121个数就应该是以5开头,6,4,3,2,,1作完全排列,最大的组合,也就是5+“64321”,564321,
那么开始算114的最接近哪个自然数和的阶乘和另一个小于6的数的乘积,
应该是114-4*4!=114-96=18,推知第120+96=216个数是521346,那么第217个数是516432
以此类推,
18-3*3!=0,推知第216+18=234个数是513246,
所以答案应该是513246,由此推广到1——9组成的9位数的从大到小的排列也应该如此的方法去算,
只不过得到的答案不一样而已。
这个答案怎么验算,你可以计算机编程,也可以通过从小到大的数进行推算,
如果6!-234=720-234=486,那么从小到大排列第486+1=487个数应该是从大到小排列的第234个数,证明过程如下:
487-5!*4=487-480=7,那么第480个数应该是465321,因为5的全排列乘以4,就是第一位是4,后面是6,5,3,2,1的全排列的最大值,那么应该是465321,那么第481个数应该是512346,
7-3!=1,那么第480+3!=486个数应该是512643,那么第487个数应该是513246,验证结果OK,
得知1,2,3,4,5,6,这6个数组成的6位数中,全排列从大到小第234个数应该是513246,欢迎大家指正点评,
真的可以推广到任意n个数字组合哦,1到9或者1到8都可以哦,
没有看懂的站内联系我,
看懂的站内也可以联系我,
qq号:1395551724
页:
[1]