在许多地方都见到了关于集合幂集问题的研究,虽然知道怎么去求,但是关于用程序去输出这个结果还是一直没解决过。在算法课堂上见到了这个题目就索性把它给做了出来,而且要求用递归算法。我也想了许多的方法,有些可行,有些虽然有思路但是不知道该怎么用程序去实现它,所以在这里我提供一种解决问题的方法。
我是用二进制方法来解决这个问题:比如在这有一个集合s={a , b , c},,显然它的幂集为{() , (a) , (b) , (c) , (a , b) , (a , c) , (b , c) , (a , b , c) },可知每一个幂集和二进制数有一个对应关系,如:
()----------------->000
(a)--------------->100
(b)--------------->010
(c)--------------->001
(a , b)----------->110
(a , c)----------->101
(b , c)----------->011
(a , b ,