令要 枚举子集 的集合为S ,每一个二进制位表示一个元素是否存在。
则可 for (int S0 = S; S0; S0 = (S0 – 1)&S )
证明:
(S0 – 1)&S必然是S的子集
因为是从最后一位开始减小,所以(S0 – 1)&S必然是最十进制数位上最靠近S0的S的自己。
故可以用(S0 – 1) & S 来生成下一个子集并得到所有S的子集。
令要 枚举子集 的集合为S ,每一个二进制位表示一个元素是否存在。
则可 for (int S0 = S; S0; S0 = (S0 – 1)&S )
证明:
(S0 – 1)&S必然是S的子集
因为是从最后一位开始减小,所以(S0 – 1)&S必然是最十进制数位上最靠近S0的S的自己。
故可以用(S0 – 1) & S 来生成下一个子集并得到所有S的子集。
一个人也像一把小提琴,你的心态好比琴弦,调整好了心态,别人就不会轻视你的价值。