在问这个问题之前,我已经做了一些研究,但没有得到相应的答案。我必须从一组2个类别中计算独特的可能组合。每个类别都有一些值。例如,在类别1中有3个值,在类别2中有4个值。计算唯一的组合
实施例:
Category1 Category2
A D
B E
F
的独特组合我寻找是(A,AD,AE,AF,B,BD,BE,BF,d,E,F)。这些是11个组合。我需要的是一个计算这个的公式。
在问这个问题之前,我已经做了一些研究,但没有得到相应的答案。我必须从一组2个类别中计算独特的可能组合。每个类别都有一些值。例如,在类别1中有3个值,在类别2中有4个值。计算唯一的组合
实施例:
Category1 Category2
A D
B E
F
的独特组合我寻找是(A,AD,AE,AF,B,BD,BE,BF,d,E,F)。这些是11个组合。我需要的是一个计算这个的公式。
Set<String> s = new HashSet<>();
for (String a: cat1){
for (String b: cat2){
s.add(a + b)
}
}
s.addAll(cat1);
s.addAll(cat2);
独特组合=组别工会类别2联盟(组别X类别2)
我读了一个问题,想要计算潜在组合的数目,不想真正确定这些组合。在这种情况下:
让A等于类别1中的选项数量,B等于类别2中的选项数量。
然后导致=(A * B)+ A + B.
如果我们有两个以上的类别,该怎么办? – Ritesh
@ user1794058将它们各自拥有的元素数相乘,然后将每个组中的元素数添加到结果中。 –
只要迭代二者的类别。
public static void main(String[] args) {
for (String first : new String[] {"A", "B", ""}) {
for (String second : new String[] {"", "D", "E", "F"}) {
String combination = first + second;
if (combination.isEmpty()) {
continue;
}
System.out.println(combination);
}
}
}
对于含有Ñ元件的一组,则必须Ñ可能元素以供选择,所以在你的例子你有2 * 3 = 6个的组合。正如我所看到的,您想要包含仅选择其中一个类别的元素的组合。这给出了2 * 3 + 2 + 3 = 11(2 * 3个组合,每个类别一个元素,2个组合只有来自cat1的元素,3个组合只有来自cat2的元素)。
设n1为cat1中元素的个数,n2为cat2中的个数,则公式为n1 * n2 + n1 + n2。如果您想要包含完全不包含任何元素的组合,请添加1.
'我已经完成了一些研究..'呃,你的意思是搜索? – devnull
是的,我的意思是不会重复发生。 :) – Ritesh
如果你自己做作业,你会更有可能通过这门课...... – ceejayoz