所有可能的不同组合的属性组合

时间:2014-07-18 05:25:50

标签: java algorithm

我有几个小组,每个小组都有多个属性。对于例如G1(p11,p12,p13 ......)G2(p21,p22,p23,...)等。

我想创建所有可能的属性组合,如(p11,p21),(p12,p21),(p13,p21)等。

如何在Java中执行此操作?有人能指出我的算法吗?

它是否等同于找到组(集)的笛卡尔积(

2 个答案:

答案 0 :(得分:0)

尝试在循环中循环

 for (String x : G1) {
    for (String y : g2) {
       System.out.println (String.format ("%s,%s", x, y));
    }
 }

答案 1 :(得分:0)

使用递归

如果你的集是s [1],s [2] ... s [n] 类似的东西:

 void rec(int p) {
     if (p > n ) 
        return;
     for ( x in s[p] ) {
         //print or add x to current combination
         rec(p+1);
     }
 }

然后致电

rec(1);