求集合元素的所有非空子集

2021-07-04 21:39:47 字數 788 閱讀 7635

現有乙個包含n個元素的集合s,求集合s的所有子集?

例如:集合s包含三個元素,則它的所有子集為:(空集), , , , , , 和。 這

裡先用位操作的思路來求解,具體方法:

用2進製bit位來標記集合中的某個元素是否被選中,1代表選中,0代表未選中。例如集合的所有子集可如下表示:

0 0 1

0 1 0

1 0 0

0 1 1

1 0 1

1 1 0

1 1 1

從上面的分析中也可以看出乙個包含n個元素的集合s有(2^n)-1個非空子集,非常容易想到的方法就是遍歷1~2^n-1的所有整數,並轉化為二進位制,按以上思路輸出所有子集。

具體實現如下:

public class subset 

system.out.println();

} }private static void getsubset(listsourceset, list> result)

"binary "+binary);

listset = new arraylist();

binary.length());

for (int index = 0; index < sourceset.size(); index++)

}/*for (string string : set)

system.out.println();*/

result.add(set);

} }}

求集合的所有子集

現有乙個包含n個元素的集合s,求集合s的所有子集?例如 集合s包含三個元素,則它的所有子集為 空集 和。這裡先用位操作的思路來求解,具體方法 用2進製bit位來標記集合中的某個元素是否被選中,1代表選中,0代表未選中。例如集合的所有子集可如下表示 空集 0 0 0 0 0 1 0 1 0 1 0 0...

求集合的所有子集 續

首先得利用輔助陣列index來記錄所有選中元素的下標,對於輔助陣列index需滿足以下兩個條件 1 index i 1 index i 即後乙個元素的下標必須大於前乙個元素的下標 2 index i i m n 從m個元素中選取n個元素的子集,i表示子集中的第i 1個元素 假如現有一集合set,求集...

集合中所有子集元素之和

題目 給乙個集合array,包含n個數。規定集合的 值 為集合中所有元素的和。求該集合的所有子集的值的和。示例 陣列 1,2 它的子集有空集,1 2 1,2 子集各自的值為0,1,2,3 所以子集值的和為0 1 2 3 6 解法一 思路 簡單暴力的方法就是窮舉陣列所有的子集,然後逐個求子集的值,然後...