Python教程

递归求幂集(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')

 四、运算结果:

 

这篇关于递归求幂集(python)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!