當前位置:成語大全網 - 新華字典 - python求集合的所有子集?

python求集合的所有子集?

題目:有壹個集合,求其全部子集(包括集合本身)。給定壹個集合s,它包含兩個元素<a, b>,則其全部的子集為<a, ab, b>。

分析:叠代法。采用叠代算法的具體過程。

假設原始集合s = <a, b, c, d>,子集結果為r:

第壹次叠代:

r = <a>

第二次叠代:

r = <a, ab, b>

第三次叠代:

r = <a, ab, b, ac, abc, bc, c>

第四次叠代:

r = <a, ab, b, ac, abc, bc, c, ad, abd, bd, acd, abcd, bcd, cd, d>

從上述可知,每次叠代,都是上壹次叠代的結果+上次叠代結果中每個元素都加上當前叠代的元素+當前叠代的元素。

code:

def getSubset(str):

if str is None or len(str) < 1:

print("參數不合法")

return

arr = []

arr.append(str[0])

i = 1

while i < len(str):

lens = len(arr)

j = 0

while j < lens:

arr.append(arr[j] + str[i])

j += 1

arr.append(str[i])

i += 1

return arr

if __name__ == "__main__":

result = getSubset("abc")

i = 0

while i < len(result):

print(result[i])

i += 1