10个数字的全排列共有10!=3628800个,组合就只有C(10,10)=1个。
如果要全部组合(就是从1位到10位都做组合),就有2^10-1=1023个结果。
由于组合没有顺序之分,所以可以人为地给出1个顺序,例如,要求第5个组合,我们先给10个数编号,号码分别为1~A,得到是1个2位数的组合,按编排是13;同理,第6个组合是123,......第1023个组合为123456789A。计算方法如下:
先将序号转换为2进制值,5的2进制值是101,从最高位起,位值为1的,用位的序号作为编号取代位值;位值为0的放弃。101第1位和第3位是1,其余是0,用位序号取代得到的编号组合就是13;同理,6的2进制值为110,取代结果就是12;1023的2进制值为1111111111,取代结果就是123456789A。
用宏处理比较简单,先做一个自定义函数Z(n,x),计算第n个组合的2进制值,返回其第x位,再用循环过程,计算x=1~10时,f=Z(n,x)*x的值,将非0的f值合并即可。
全排列和选排列用循环语句可以实现,但意义似乎不大。
这个排列在excel中不好直接排,用宏也存在难以排完的情况。
在某一列或某一行是排不完的。可能没有方法!