枚举子集的写法

总结一下。

设S表示一个01状态集,那么它的所有非空子集x可以通过以下代码枚举。

 

for (int x = S; x; x = (x-1)&S)
 
   

 

比如S=1011,则x分别为:1011, 1010, 1001, 1000, 0011, 0010, 0001。忽略S中第二位的0其实就是111, 110, 101, 100, 011, 010, 001。

转载于:https://www.cnblogs.com/Commence/p/5712322.html

你可能感兴趣的:(枚举子集的写法)