コンビネーションオペレーション
641 ワード
import copy
def comb(a):
b=[]
c=[]
c.append(b)
for item in a:
b=[]
for citem in c:
x=copy.deepcopy(citem)
x.append(item)
b.append(x)
for bitem in b:
## print bitem
c.append(bitem)
print len(c)
comb([1,2,3,4])
数列の組合せを計算します.
構想:[1,2,3]が[1,2,3,4]に増加するごとに、組合せ状況は[comb([1,2,3]),[item,4]for item in comb([1,2,3])]である.
なお、Pythonで値を割り当てる場合は、新しい空間を作成することなく参照を生成し、copyを通過する必要がある.deepcopy深いコピーは元の変数空間と独立して開いている.