求集合的冪集

2021-08-03 05:29:40 字數 783 閱讀 5256

這是朋友叫我幫他寫的,足足幹了兩天,終於在養好精神後把它做出來了,雖然是遞迴實現的,但總算是弄出來了,兩天時間裡搞了好多遍迴圈來實現,但是寫著寫著就迷糊了,洗了個頭,刷了把臉,人精神了,換了遞迴刺溜一下就寫出來了,手動開心 哈哈哈哈。

但是據說還可以用分治法、回溯法、窮舉法來實現哦

#include

#include

using

namespace

std;

void func(int index, int arr, int len1, int buffer,int len2)

printf("%d}", arr[i]);//輸出新增加的數

buffer[len2] = arr[i];//把新增加的數加到記錄裡方便下次輸出

if (i + 1

< len1 ) func(i + 1, arr, len1, buffer,len2+1);//函式遞迴,傳遞記錄,讓這次的記錄和下次的新增加的數一起輸出。

}}int main() ;//原始陣列

int buffer[len1]; //用來記錄上一次的輸出記錄例如 他的上一次記錄為

int len2 = 0;//用來記錄buffer的大小

int index = 0;

func(index, arr, len1, buffer,len2);

return

0;}

輸出結果

求集合的冪集

集合的冪集a 則a的冪集為 對於求a集合的冪集,a中的元素它只有兩中狀態,它或屬於冪集的元素集,或者不屬於冪集的元素集。求冪集的過程可以看成是對a中元素進行 取 或 舍 的過程。狀態樹如下 葉子節點表示終結狀態,而第i層的分支節點,則表示已對集合a中前i 1個元素進行了取 舍處理的狀態。求冪集的過程...

集合的冪集dfs stack

思路n n 20 的值以及s的n個元素 s的冪集 3 abc c b bc a ac ab abc include include include include using namespace std int c 0 stackss void dfs char str int n,int i if...

位元位串求冪集

利用位元位串來求冪集合 date 2020.4.23 利用位元位串來求冪集合 比如 000 j 0 i 0輸出空 001 j 0 i 1 輸出 a 010 j 1 i 2 輸出b 011 j 1 j 0,i 3 輸出 ab,一次類推 100 j 2,i 4 輸出c 101 j 2,j 0,i 5 輸...