2013-10-15 172 views
0

在問這個問題之前,我已經做了一些研究,但沒有得到相應的答案。我必須從一組2個類別中計算獨特的可能組合。每個類別都有一些值。例如,在類別1中有3個值,在類別2中有4個值。計算唯一的組合

實施例:

Category1  Category2 
    A    D 
    B    E 
       F 

的獨特組合我尋找是(A,AD,AE,AF,B,BD​​,BE,BF,d,E,F)。這些是11個組合。我需要的是一個計算這個的公式。

+1

'我已經完成了一些研究..'呃,你的意思是搜索? – devnull

+0

是的,我的意思是不會重複發生。 :) – Ritesh

+3

如果你自己做作業,你會更有可能通過這門課...... – ceejayoz

回答

2
Set<String> s = new HashSet<>(); 
for (String a: cat1){ 
    for (String b: cat2){ 
    s.add(a + b)  
    } 
} 
s.addAll(cat1); 
s.addAll(cat2); 
0

獨特組合=組別工會類別2聯盟(組別X類別2)

1

我讀了一個問題,想要計算潛在組合的數目,不想真正確定這些組合。在這種情況下:

讓A等於類別1中的選項數量,B等於類別2中的選項數量。

然後導致=(A * B)+ A + B.

+0

如果我們有兩個以上的類別,該怎麼辦? – Ritesh

+0

@ user1794058將它們各自擁有的元素數相乘,然後將每個組中的元素數添加到結果中。 –

0

只要迭代二者的類別。

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); 
     } 
    } 
} 
+1

D,E,F缺失 – Daniel

+0

哦,我明白了,謝謝。我已經更新了我的答案。 – Kojotak

1

對於含有Ñ元件的一組,則必須Ñ可能元素以供選擇,所以在你的例子你有2 * 3 = 6個的組合。正如我所看到的,您想要包含僅選擇其中一個類別的元素的組合。這給出了2 * 3 + 2 + 3 = 11(2 * 3個組合,每個類別一個元素,2個組合只有來自cat1的元素,3個組合只有來自cat2的元素)。

設n1爲cat1中元素的個數,n2爲cat2中的個數,則公式爲n1 * n2 + n1 + n2。如果您想要包含完全不包含任何元素的組合,請添加1.