[請益] 列出所有子集..不懂它的虛擬碼
看板Prob_Solve (計算數學 Problem Solving)作者mqazz1 (無法顯示)時間14年前 (2010/07/11 20:55)推噓1(1推 0噓 1→)留言2則, 1人參與討論串1/1
列出所有子集
給定一個集合 S = {1, 2, ..., n},列出所有子集(包含空集合)
Ex. {1, 2}
有1/ \沒1
/ \
/ \
有2/ \沒2 有2/ \沒2
{1,2} {1} {2} { }
/*
input:
A 記錄選擇狀況矩陣
S 集合內的內容
n 集合個數
k 目前走到decision tree的層數
/*
powerset(A, S, n, k)
begin
if k > n
do for i ← 1 to n //這邊i是1~n,可是n個元素子集合不是2^n?
if A[i] = True
then output s[i]
else //else之後就不太懂了....
A[k] ← True
powerset(A, S, n, k+1)
A[k] ← False
powerset(A, S, n, k+1)
end
//初始以 powerset(A, S, n, 1) 呼叫
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.30.83
推
07/11 21:33, , 1F
07/11 21:33, 1F
→
07/11 21:34, , 2F
07/11 21:34, 2F
Prob_Solve 近期熱門文章
PTT數位生活區 即時熱門文章