求乙個集合所有可能的子集

2021-07-23 12:11:07 字數 904 閱讀 9240

增量構造法

一次選出乙個元素放到集合中

#include#includeusing namespace std;

const int max = 100;

int layer = -1; //遞迴層數

int count1 = 0;

void print_subset(int n, int *a, vector&vi, int cur)

print_subset(n, b, vec, 0);

cout << "number of set:" << count1 << endl;

return 0;

}

【位向量法】

構造乙個位向量b[i],其中當b[i]==1的時候i元素在子集a中,b[i]==0時不在子集a中。

#include#include#includeusing namespace std;

const int max = 100;

int count1 = 0;

int layer = -1;

void fullcombination(vector&vi,int n, int* b, int cur)

fullcombination(vec,n, b, 0);

cout << count1 << endl;

return 0;

}

二進位制法

#include#include#includeusing namespace std;

void print_subset( int n, int s)//列印的子集s

int main()

求乙個集合的所有子集 java實現

求乙個集合的所有子集表示從乙個集合當中,任取任意項或不取,所能得到的所有結果,比如有乙個集合,那麼,等都是它的子集,空集也是它的子集,乙個具有n 個元素的集合,它的子集共有2 n個,因為對於每個元素都有兩種可能 選與不選。如果用1來表示選擇,0表示不選,那麼四個元素的集合選擇情況可以表示為 0000...

求集合的所有子集

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

輸出乙個集合的所有子集

輸出字串的所有子集 如 對 abc 輸出 c b bc a ac ab abc 第一種做法 2 n 遍歷每個字元,每個字元只能取或者不取。取就把該字元加入結果中,遍歷完畢後,輸出結果字串。如下 main.cpp 輸出乙個集合的所有子集 created by zjl on 16 8 10.includ...