元素的所有组合与每个组中的完全一个元素

时间:2014-04-26 04:20:16

标签: java combinations element

我正在寻找一种方法来获得所有可能的组合,包括完全每个组中的一个元素。出于我的目的,我不关心元素的排序。我的意思是{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}

我应该如何处理这样的问题?我的希望是,即使只是一个提示应该帮助我减轻一点。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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+')';
                }
            }
        }
    }