简单枚举---从一数组中任取n个元素

Posted BPSO_Mynotes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单枚举---从一数组中任取n个元素相关的知识,希望对你有一定的参考价值。

这个问题很明显的需要用枚举的思想来一一遍历数组元素并进行无重复组合

 

给出一个数组a[14]={1,2,3,4,5,6,7,8,9,10,11,12,13,14},求从中任取n个元素的所有组合

 

如果任取1个元素+取所有元素:15种可能

 

如果任取2个元素:C^2 14=91  递归组合

1 2    1 3    1 4  1 5   1 6 1 7 1 8 1 9 1 10 1 11 1 12   1 13   1 14   14种

2 3   2 4  2 5  2  6   ... 13种

12 种 .. 1种

((1+14)X14 ) /  2 =99种

 

...

如果任取13个元素:C^13 14=

 

计算过程:C(14,1) = 14 + C(14,2) = 91+  C(14,3) = 364  + C(14,4) = 1001 +  C(14,5) = 2002 + C(14,6) = 3003 + C(14,7) = 3432...

 

(现在每次删除一个后执行命令,是任取13个的一种,12个的一种,11个的一种.., 1个的一种)

 

参考来源:

https://blog.csdn.net/johnsjee/article/details/17071945

以上是关于简单枚举---从一数组中任取n个元素的主要内容,如果未能解决你的问题,请参考以下文章

n球中任取m个(不放回)

编写一个递归算法,找出从自然数1,2,3,…,n中任取r个数的所有组合。例如n=5,r=3时所有组合为543,542,541,532,531,521,432,431,421,321。

算法习题---字符串的全排序列

递归解决全排列生成算法

Java实现全排列

快速排序(java)