在問這個問題之前,我已經做了一些研究,但沒有得到相應的答案。我必須從一組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