我想用JAVA实现个算法,比如String M={"1","2","a"};
从中任意取2位,也就是M的2次方,我想得到的是11,22,aa,12,21,1a,a1,2a,a2。
也就是第一位是M数组中的任意一个,第二位也是,这样的所有组合。
其中M和N都是灵活的(数组可以定义任意字符和长度,N作为参数传进来)。
请高手指点下,谢谢!

解决方案 »

  1.   

    第一行是String[] M={"1","2","a"};前面漏了[],也可以是其他数组比如char
      

  2.   

    11,22,aa,12,21,1a,a1,2a,a2。
    你这个是取了几位。。这不全排列了? 
      

  3.   

    String[] m = {"1","2","a"};
    for (int i = 0; i < m.length; i++) {
    for (int j = 0; j < m.length; j++) {
    System.out.print(m[i] + m[j] + "\t");
    }
    另外你的N是什么
    看不太懂。
      

  4.   

    他的M代表字符串数组N代表的是全排列的位数.是11,22,aa,12,21,1a,a1,2a,a2。 这样的N=2
      

  5.   

    4楼说的差不多,M是数组的位数,String[] m = {"1","2","a"};这样M就是3
    N是取多少位,比如取2位(n=2),M的N次方就是3的2次方=9,也就是11,22,aa,12,21,1a,a1,2a,a2这9中排列
    这个不是全排列,全排列是不包括重复的,全排列得到的结果是12,21,1a,a1,2a,a2这6个没有11,22,aa这重复的3个