본문 바로가기

컴퓨터/python

[python] Permutations와 Combinations (순열과 조합)

순열(Permutations)

- 서로 다른 n개에서 r개를 선택할 때 순서를 고려하여 중복없이 뽑는 경우의 수 (nPr = n! / (n-r)!)

- ex) A,B,C가 있다고 할 때 순서를 고려하여 2개를 중복 없이 뽑는 모든 경우의 수는 다음과 같다.

AB

AC

BA

BC

CA

CB

3! / (3-2)! = 6

총 6가지

 

 

조합(Combinations)

- 서로 다른 n개에서 r개를 선택할 때 순서를 고려하지 않고 중복없이 뽑는 경우의 수(nCr = n! / r! (n-r)!)

- ex) A,B,C가 있다고 할 때 순서를 고려하지 않고 2개를 중복 없이 뽑는 모든 경우의 수는 다음과 같다.

AB

AC

CA

3! / 2! (3-2)! = 3

총 3가지

 

 

python의 순열과 조합

 python에서는 순열과 조합을 만들어주는 모듈 itertools를 제공한다.

순열은 permutations

조합은 combinations을 import 한다.

 

반복문으로 순열과 조합을 각각 확인할 수 있으며, 각 쌍을 튜플로 반환한다.

 

from itertools import permutations, combinations

lst = ['A', 'B', 'C']

for i in permutations(lst,2):
    print("순열 :", i)
    
for i in combinations(lst,2):
    print("조합 :", i)
    
    

#순열 : ('A', 'B')
#순열 : ('A', 'C')        
#순열 : ('B', 'A')        
#순열 : ('B', 'C')        
#순열 : ('C', 'A')        
#순열 : ('C', 'B')        
#조합 : ('A', 'B')        
#조합 : ('A', 'C')        
#조합 : ('B', 'C')

 

 

728x90