티스토리 뷰
순열 : permutation
✔️ 순열이란 주어진 숫자 중 n개를 골라 순서를 고려해 나열한 경우의 수를 말한다
✔️ 즉, 서로 다른 n 개 중 r 개를 골라 순서를 정해 나열하는 가짓수이다
✔️ 그리고 순열은 ‘Permutation’의 첫 글자 P를 따서 nPr로 표시한다
예를 들어 조별 활동을 위해 같은 조가 된 A, B, C 세 명의 학생 중 조장과 부조장을 뽑으려 한다
조장과 부조장을 뽑는 데 모두 몇 가지 경우의 수가 있을까?
A, B 두 사람을 뽑는다면 순서에 따라 (A, B)가 될 수도 있고 (B, A)가 될 수도 있다
(A, B)에서는 A는 조장, B가 부조장의 역할을 맡는다. 반면 (B, A)에서는 B가 조장의 역할을, A가 부조장의 역할을 맡는다.
둘은 엄연히 다르다. 이를 통해 순열은 순서를 고려한다는 것을 알 수 있다
파이썬으로 순열을 구현할 때에는 itertools의 permutations()를 사용한다
import itertools
n = ['A', 'B', 'C']
r = 2
nPr = itertools.permutations(n, r)
print(list(nPr))
조합 : combination
✔️ 조합이란 서로 다른 n개 중에서 r개(n≥r) 취하여 조를 만들 때, 이 하나하나의 조를 n개 중에서 r개 취한 조합이라고 한다
✔️ 조합의 총수는 nCr로 표시하는데 이 기호는 combination(조합)에서 따온 것이다
예를 들어 A, B, C 세 명의 학생 중 임원을 두 명 뽑으려 한다. 모두 몇 가지 경우의 수가 있을까?
A, B 두 사람을 뽑는다면 순서에 따라 (A, B)가 될 수도 있고 (B, A)가 될 수도 있다
하지만 (A, B)에서도 A와 B는 모두 임원이고, (B, A)역시 마찬가지로 A와 B 모두가 임원이다
조합은 (A, B)와 (B, A)는 같은 것으로 취급한다
즉, 조합은 순서를 고려하지 않기 때문에 A, B, C 세 명의 학생 중 임원을 2명 뽑는 방법은 (A, B), (A, C), (B, C)으로 총 3가지이다
파이썬으로 조합을 구현할 때에는 itertools의 combinations()를 사용한다
import itertools
n = ['A', 'B', 'C']
r = 2
nCr = itertools.combinations(n, r)
print(list(nCr))
[참고] 네이버 지식 백과 - 순열, 네이버 지식 백과 - 조합
'BackEnd > Python' 카테고리의 다른 글
[파이썬 개발 도구] 파이참 (Pycharm) (0) | 2021.03.30 |
---|---|
[파이썬 개발 도구] 기본 개발 툴(IDLE) / 주피터 노트북 (0) | 2021.03.29 |
[파이썬 기초] 06-1. 이터레이터와 제너레이터 (0) | 2021.03.24 |
[파이썬 기초] 05-4. 데코레이터 (0) | 2021.03.24 |
[파이썬 기초] 05-3. 상속과 추상 클래스 (0) | 2021.03.23 |