S是一個二進(jìn)制數(shù),表示一個集合,可以用S0=S(初始),S0=(S0-1)&S(下一個)這種方法枚舉遍S的所有子集。
注意到這種枚舉方法是二進(jìn)制數(shù)值上從大到小枚舉子集的。用歸納法證明合理性,假設(shè)枚舉到某個S0,大于它的所有S子集都枚舉過了,下一個枚舉S1=(S0-1)&S,需要證明S1是S0緊挨著的下一個子集,才能保證枚舉不漏,也就是要證明區(qū)間(S1,S0)里不存在S的其他子集。
設(shè)S0以k(k=0,1,2…)個0結(jié)尾,S0=xxxx10...0,則S0-1=xxxx01...1,S1=(S0-1)&S,易見S1是以xxxx0開頭的最大子集,而S0是以xxxx1開頭的最小子集,如果存在某子集S1<Sx<S0,Sx要么以xxxx0開頭,要么以xxxx1開頭,無論哪種情況,都會出現(xiàn)矛盾。
子集枚舉(S0=(S0-1)&S)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 今天晚上一直陷入了抱怨模式當(dāng)中。主要的起因是因?yàn)槔瞎o孩子換衣服的時候,孩子不配合,老公就動手打了孩子。正是因?yàn)檫@...