Python
[Python] 순열(permutations)과 조합(combinations)
meizzi
2023. 2. 6. 15:38
728x90
반응형
순열(permutations)
- 서로 다른 n개에서 r개를 선택할 때, 순서를 고려하여 중복 없이 뽑을 경우
- nPr = n! / (n -r)!
- 만일 A, B, C에서 순서를 고려하여 중복 없이 2개의 쌍을 구한다면
- AB/AC/BA/BC/CA/CB
- 총 6가지
- 사용법
- permutations(객체, r)
- r = 반복 가능한 객체(list, tuple, 문자열) 안에서 선택할 개수
- 조건
- from itertools import permutations 선언
- return
- 객체
- 경우의 수에 대한 쌍을 tuple 형식으로 반환
- permutations(객체, r)
from itertools import permutations
arr = ['A', 'B', 'C']
nPr = permutations(arr, 2)
print(list(nPr)) # [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
조합(combinations)
- 서로 다른 n개에서 r개를 선택할 때, 순서를 고려하지 않고 중복 없이 뽑을 경우
- nCr = n! / r! (n-r)!
- 만일 A, B, C에서 순서를 고려하지 않고 중복 없이 2개의 쌍을 구한다면
- AB/AC/BC
- 총 3가지
- 사용법
- combinations(객체, r)
- r = 반복 가능한 객체(list, tuple, 문자열) 안에서 선택할 개수
- 조건
- from itertools import combinations 선언
- return
- 객체
- 경우의 수에 대한 쌍을 tuple 형식으로 반환
- combinations(객체, r)
from itertools import permutations
arr = ['A', 'B', 'C']
nCr = combinations(arr, 2)
print(list(nCr)) # [('A', 'B'), ('A', 'C'), ('B', 'C')]
728x90
반응형