2014-04-26 87 views
0

我正在寻找一种方法来获得由正好为组成的每个组中的一个元素的所有可能组合。为了我的目的,我不关心元素的排序。我的意思是{1,2}和{2,1}是一样的。元素的所有组合与每个组中的一个元素

假设我有以下4类:

Group 1 = {e1, e2} 
Group 2 = {e3, e4} 
Group 3 = {e5, e6, e7} 
Group 4 = {e8} 

在这种情况下,我想我会想(假设实际上是所有独特的组合)

{e1, e3, e5, e8} 
{e1, e3, e6, e8} 
{e1, e3, e7, e8} 
{e1, e4, e5, e8} 
{e1, e4, e6, e8} 
{e1, e4, e7, e8} 
{e2, e3, e5, e8} 
{e2, e3, e6, e8} 
{e2, e3, e7, e8} 
{e2, e4, e5, e8} 
{e2, e4, e6, e8} 
{e2, e4, e7, e8} 

我应该如何看待一个问题像这样?我的希望是,即使只是一个暗示应该帮助我一吨。

回答

0

嵌套循环。它不会很漂亮,但它会起作用。循环内的循环内的循环。检查每个元素对所有其他组,然后检查下一个元素。只有在知道组数的情况下,该解决方案才有效。 O(n^4)对大型团体来说也会很慢。

+0

运行时间对我来说并不是什么大问题,因为我将主要处理相对较小的数据集。这个答案是有帮助的,因为我已经成功地完成了我需要做的事情。 – user3575087

0
for (var Item1 in Group1) { 
     for (var Item2 in Group2) { 
      for (var Item3 in Group3) { 
       for (var Item4 in Group4) { 
        echo '{'+Item1+','+Item2+','+Item3+','+Item4+')'; 
       } 
      } 
     } 
    } 
相关问题