[請益] 列出所有子集..不懂它的虛擬碼
列出所有子集
給定一個集合 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