编程语言
首页 > 编程语言> > 递归求幂集(python)

递归求幂集(python)

作者:互联网

一、问题描述

例如: 集合{‘A’, 'B', 'C}的幂集为{‘ ’,‘A’, 'B', 'C', 'AB', 'AC', 'BC', 'ABC'},由高中知识可知为2^n个

二、思路分析:

很明显,我们可以使用递归来解决,算法思想如下:

三、源代码:

set_null = set(' ')    #空集为一个空格


def PowerSet(A):
    global set_null
    if len(A) == 0:     #递归退出条件
        return set_null
    else:
        a = A.pop()
        # print("去除了" + a)
        p = PowerSet(A)
        for b in p:
            c = b + a
            p = p | set([c])    #加[]是为了让c整体为一个集合元素  例{'ABC'}
        return p


if __name__ == '__main__':
    A = {'A', 'B', 'C', 'D'}
    P = PowerSet(A)
    print("集合A的幂集为:")
    for p in P:
        if p == ' ':
            print('null', end='\t')
        print(p, end='\t')

 四、运算结果:

 

标签:__,幂集,set,递归,python,print,null,PowerSet
来源: https://blog.csdn.net/younger77/article/details/123585860