为Vectors和Hashsets创建配对

时间:2017-11-14 20:05:28

标签: java vector logic artificial-intelligence hashset

我有k个向量,每个向量包含n个元素。

我需要实现一种以这种方式创建新Vector的算法:

例如:给定

V1: (e1, e2)
V2: (e3)
V3: (e4, e5, e6)

所需的输出将是

newV1: (e1, e3, e4)
newV2: (e1, e3, e5)
newV3: (e1, e3, e6)
newV4: (e2, e3, e4)

等等,直到它以这种方式产生所有可能的组合。

到目前为止,我所做的只是为第一个Vector的每个元素生成第一个组合(它只生成newV1newV4等):

//compute new subclauses
CNFClause expressionNegatedFinal = new CNFClause();
boolean visited = false;

expressionNegated.getSubclauses().get(0).print();
for (Literal l: expressionNegated.getSubclauses().get(0).getLiterals()) {

    CNFSubClause scNF = new CNFSubClause();
    scNF.getLiterals().add(l);
    for (int j=1; j<expressionNegated.getSubclauses().size(); j++) {

        for(Literal li: expressionNegated.getSubclauses().get(j).getLiterals()) {
             li.setVisited(true);
             scNF.getLiterals().add(li);
             break;
        }

    }  
    expressionNegatedFinal.getSubclauses().add(scNF);
}

我该如何实现?

Edit1:我需要这个能够用于任何大于或等于2的k个向量,并且每个向量中任意n个元素大于或等于1

0 个答案:

没有答案