幂集的定义:
所谓幂集(Power Set), 就是原集合中所有的子集(包括全集和空集)构成的集族。
例如S={1,2}
2S(幂集的一种表示方法)={ {},{1},{2},{1,2} },|2S|=2|S|,|…|表示…的基数,即集合元素的数目
代码思想:
记 power(S):S的幂集
递归表达式
power(S)=power(S/{elem})+ (power(S/{elem}) + {elem})
Note:
1.elem指S集中任一元素,是从S集中剔除来的,为了方便,下面我都是剔除的最后一个元素
2.第一个+表示:前后两个幂集求并集
第二个+表示:迭代S/{ elem }的幂集,将elem一一加入
代码(python):
def powerSet(l):
if len(l)==1:
return [[],l]
l1=l[:len(l)-1]
elem=l[len(l)-1]
temp=powerSet(l1)
temp1=[]
for i in temp:
temp1.append(i+[elem])
return temp+temp1
l=[1,2,3,4]
print(powerSet(l))