本帖最后由 香川群子 于 2013-9-24 10:47 编辑
学不完用不尽 发表于 2013-9-23 22:37
测试了这样一组数据:0、10、3、8、1、2、6、4、0、0,抽取3个时,貌似有误。
请测试!
我的代码是不可能有错误的。是你的要求有问题。
你的10个原始数据中0重复了3次……你想要得到什么样的组合结果呢?
根据要求不同,需要不同的代码。
…………
10个元素抽取3个应该得到 =Combin(10,3)=120 组合,或者 =Permut(10,3)=720 排列组合
但如果需要排除3个重复的0,则只有64个不重复组合结果,或者274个不重复排列结果。
下面是64组不同的组合:
0,0,0;0,0,1;0,0,2;0,0,3;0,0,4;0,0,6;0,0,8;0,0,10;0,1,2;0,1,3;0,1,4;0,1,6;0,1,8;0,1,10;0,2,3;0,2,4;
0,2,6;0,2,8;0,2,10;0,3,4;0,3,6;0,3,8;0,3,10;0,4,6;0,4,8;0,4,10;0,6,8;0,6,10;0,8,10;1,2,3;1,2,4;1,2,6;
1,2,8;1,2,10;1,3,4;1,3,6;1,3,8;1,3,10;1,4,6;1,4,8;1,4,10;1,6,8;1,6,10;1,8,10;2,3,4;2,3,6;2,3,8;2,3,10;
2,4,6;2,4,8;2,4,10;2,6,8;2,6,10;2,8,10;3,4,6;3,4,8;3,4,10;3,6,8;3,6,10;3,8,10;4,6,8;4,6,10;4,8,10;6,8,10
补充内容 (2014-4-18 14:59):
更正:10个元素中3个相同,其余7个各自不同,那么不重复的排列组合共有358个。之前0值处理有误导致结果错误。 |