- 순열
서로 다른 n개에서 서로 다른 r개를 선택하여 일렬로 나열하는 것
nPr = n! / (n-r)!
- 조합
서로 다른 n개에서 순서 상관없이 서로 다른 r개를 선택하는 것
nCr = n! / r! * (n-r)!
순열이랑 조합 .. 고등학생 때(?) 배웠을 때는 분명 어렵지 않았는데 다시 보니 매우 낯설고 헷갈린다 😳 |
<순열>
from itertools import permutations
data = [1, 2, 3]
result = list(permutations(data, 3)) #모든 순열 구하기
print(result) #[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
<중복 허용된 순열>
from itertools import product
data = [1, 2, 3]
result = list(product(data, repeat=2)) #2개를 뽑는 모든 순열 구하기(중복 허용)
print(result) #[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
<조합>
from itertools import combinations
data = [1, 2, 3]
result = list(combinations(data, 2)) #2개를 뽑는 모든 조합 구하기
print(result) #[(1, 2), (1, 3), (2, 3)]
<중복 허용된 조합>
from itertools import combinations_with_replacement
data = [1, 2, 3]
result = list(combinations_with_replacement(data, 2)) #2개를 뽑는 모든 조합 구하기(중복 허용)
print(result) #[(1, 1), (1, 2), (1, 3), (2, 2), (2, 3), (3, 3)]
이것은 그냥 외워야 할 것들 .. 아쟈쟈쟈쟈쟈쟈쟈 쟈쟈쟈쟈쟈쟈쟈쟈 😤 |
'파이썬' 카테고리의 다른 글
[Python] DateTime (1) | 2023.03.20 |
---|---|
[Python] 딕셔너리 관련 함수들 (0) | 2023.03.18 |
[Python] 문자열 정렬하기 ljust, center, rjust, zfill (2) | 2023.03.18 |
[Python] enumerate, zip 🤐 (3) | 2023.03.07 |
[Python] 내장 산술 함수 (0) | 2023.01.03 |