我在製作算法時遇到了麻煩,該算法從約30個對象列表中產生每個集合和子集合(包括空集合),每個集合中最多包含4個對象。來自30個對象列表的4個獨特對象的每個集合和子集?
我使用Java編寫,但僞代碼應該沒問題。
這是我迄今所做的:
for (int a = 0; a < Objects.length; a++) {
for (int b = a + 1; b < Objects.length; b++) {
for (int c = b + 1; c < Objects.length; c++) {
for (int d = c + 1; d < Objects.length; d++) {
// add Objects[a, b, c, d] to the Set
// do other stuff
}
}
}
}
但顯然這是不行的,因爲它迫使每個組4個對象(而我需要的子集用更少的元素)。
使用Google搜索這個問題產生了很多答案,但從來沒有一個產生所有的子集,並且對集合的大小有限制。
你的問題不匹配說明。每個** 4 **獨特的對象,但描述聽起來像你也想每個3,2和1個獨特的對象呢? – weston
@weston true,將嘗試編輯 – Mossmyr