"取出r个元素" 是随机取吗???
"打印出所有取法" 什么意思???

解决方案 »

  1.   

    你的意思我理解应该是从1-n个数中取出r(r<=n)个元素的不同取发,是个组合问题。
    给你个简单的程序,自己再扩展下,应该是很简单的了;下面是从a{1...n}数组中取m个数的算法,我用a{1,2,3,4}测试.b[]为存储数组,M为存储数组的个数
    public class Zuhe {
    public static void combine(int a[],int n,int m,int b[],int M){
    for(int i=n;i>=m;i--){
    b[m-1]=i-1;
    if(m>1)
    combine(a,i-1,m-1,b,M);
    else{
    for(int j=M-1;j>=0;j--)
    System.out.print(a[b[j]]);
    System.out.println();
    }
    }
    }
    public static void main(String[] args) {
    //从4个元素中取3个数的所有取法
    int M=3;
    int[] arr={1,2,3,4};
    int[] brr=new int[M];
    combine(arr,4,3,brr,M);
    }
    }结果打印如下:
    the result is:
    432
    431
    421
    321