看板 Prob_Solve 關於我們 聯絡資訊
列出所有子集 給定一個集合 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
LPH66:那個 for 是終止之後印出的「一個」子集內容啊... 07/11 21:33
LPH66:反而 else 才是遞迴本體 難怪你看不懂了 07/11 21:34