Python 利用增量穷举法思路生成幂集

Python 利用增量穷举法思路生成幂集

  采用增量穷举法求解a~c的幂集:
  (1)产生一个空列表添加到ps中,即ps=[[]]
  (2)在步骤(1)得到的ps的每一个集合元素的末尾添加’a’构成新列表元素[‘a’],将其添加到ps中,即ps=[[],['a']]
  (3)在步骤(2)得到的ps的每一个集合元素的末尾添加’b’构成新列表元素[‘b’],[‘a’,‘b’],将其添加到ps中,即ps=[[],['a'],['b'],['a','b']]
  (4)在步骤(3)得到的ps的每一个集合元素的末尾添加’c’构成新列表元素[‘c’],[‘a’,‘c’],[‘b’,‘c’],[‘a’,‘b’,‘c’],将其添加到ps中,即ps=[[],['a'],['b'],['c'],['a','b'],['a','c'],['b','c'],['a','b','c']]
  最后的ps构成a~c的幂集。
  以下是Python代码:

"""生成幂集"""
ob=['a','b','c']   # 要生成幂集的列表
def insertnum(p,si):   # 利用以下两个函数计算出背包所有幂集
    p1=p.copy()
    for s in p1:
        s1=s.copy()
        s1.insert(len(s1),si)
        p.append(s1)
    return ps
def pSet(s,i,ps):
    if i!=len(s):
        ps=insertnum(ps,s[i])
        pSet(s,i+1,ps)
ps=[[]]  # 存放幂集的列表
pSet(ob,0,ps)

运行结果:

[[], ['a'], ['b'], ['a', 'b'], ['c'], ['a', 'c'], ['b', 'c'], ['a', 'b', 'c']]
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值