순열(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
'컴퓨터 > python' 카테고리의 다른 글
[python] 알파벳 리스트 만들기 (0) | 2023.06.15 |
---|---|
[python] 중복 순열과 중복 조합 (0) | 2023.06.13 |
[Python][Error] ValueError: invalid literal for int() with base 10: '\n' (0) | 2023.05.11 |
[python] Tree 순회하기 (0) | 2023.04.18 |
[python] heapq (0) | 2023.04.17 |