Python实现求一个集合所有子集的示例
方法一:回归实现
defPowerSetsRecursive(items): """Userecursivecalltoreturnallsubsetsofitems,includeemptyset""" iflen(items)==0: #ifthelsitisempty,returntheemptylist return[[]] subsets=[] first_elt=items[0]#firstelement rest_list=items[1:] #Strategy:Getallsubsetsofrest_list;foreachofthosesubsets,afullsubsetlist #willcontainboththeoriginalsubsetaswellasaversionofthesebsetthatcontainsthefirst_elt forpartial_sebsetinPowerSetsRecursive(rest_list): subsets.append(partial_sebset) next_subset=partial_sebset[:]+[first_elt] subsets.append(next_subset) returnsubsets
defPowerSetsRecursive2(items): #thepowersetoftheemptysethasoneelement,theemptyset result=[[]] forxinitems: result.extend([subset+[x]forsubsetinresult]) returnresult
方法二:二进制法
defPowerSetsBinary(items): #generateallcombinationofNitems N=len(items) #enumeratethe2**Npossiblecombinations foriinrange(2**N): combo=[] forjinrange(N): #testjthbitofintegeri if(i>>j)%2==1: combo.append(items[j]) yieldcombo
以上这篇Python实现求一个集合所有子集的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短