본문 바로가기
TIL - 프로그래밍/개념, 설정

[Python] 부분집합 - 순열1

by chaemj97 2022. 3. 5.
728x90

1. [1,2,3]의 부분집합 구하기

def f(i,N): # i부분집합에 포함될지 결정할 원소의 인덱스, N 전체 원소개수
    if i == N : # 한개의 부분집합 완성
        print(bit, end=' ')     
        for j in range(N):
            if bit[j]:
                sum += a[j]
                print(a[j],end=' ')
        print()
        
    else:
        bit[i] = 1
        f(i+1,N)
        bit[i] = 0
        f(i+1,N)
    return
    
a = [1,2,3]
bit = [0,0,0]
f(0,3)

코드실행결과

 

2. 부분집합 합 구하기(sum추가)

def f(i,N): # i부분집합에 포함될지 결정할 원소의 인덱스, N 전체 원소개수
    if i == N : # 한개의 부분집합 완성
        print(bit, end=' ')
        sum = 0
        for j in range(N):
            if bit[j]:
                sum += a[j]
                print(a[j],end=' ')
        print('sum = ',sum)
    else:
        bit[i] = 1
        f(i+1,N)
        bit[i] = 0
        f(i+1,N)
    return
a = [1,2,3]
bit = [0,0,0]
f(0,3)

코드실행결과

728x90
반응형

댓글