首页 > 代码库 > C(n,k)在n个不重复数中获得k个数
C(n,k)在n个不重复数中获得k个数
//比如在数组a[]={1,7,89,87} 中k=2的时候 组合为 C(4,2)=6
package 再次开始;import java.util.ArrayList;//本次实现的是在n个不重复树中提取k个;输出各种组合//在 1 2 3 7 8public class 组合问题 { public static void main(String args[]) { int arr[]=new int[]{1,3,4,6,9};// ArrayList<Integer> arry=new ArrayList<Integer>();//用于保存当前的求得的序列 dfs(arr,arry, 3, 0); } // arry 原始排序数组, k表示取多少个,start表示当前可以选取的下标 private static void dfs(int[] arr,ArrayList<Integer> arry, int k, int start) { // TODO Auto-generated method stub if(arry.size()==k) { System.out.println(arry); return; } else { for(int i=start;i<arr.length;i++) { arry.add(arr[i]); dfs(arr,arry,k,i+1); arry.remove(arry.size()-1); } } } }
ref:http://blog.csdn.net/u010500263/article/details/18435495
int arr[]=new int[]{1,3,4,6,9};取得3个
[1, 3, 4][1, 3, 6][1, 3, 9][1, 4, 6][1, 4, 9][1, 6, 9][3, 4, 6][3, 4, 9][3, 6, 9][4, 6, 9]
C(n,k)在n个不重复数中获得k个数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。