Tech/Python
[Python] 순열과 조합
aeightchill
2024. 5. 29. 14:42
728x90
product('ABCD', repeat = 2) | AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD |
permutations('ABCD', 2) | AB AC AD BA BC BD CA CB CD DA DB DC |
combinations('ABCD', 2) | AB AC AD BC BD CD |
combinations_with_replacement('ABCD', 2) | AA AB AC AD BB BC BD CC CD DD |
permutations
서로 다른 n 개에서 r 개를 선택할 때 순서를 고려하여 중복없이 뽑는 경우의 수
nPr = n! / (n-r)!
combinations
서로 다른 n 개에서 r 개를 선택할 때 순서를 고려하지 않고 중복없이 뽑는 경우의 수
nCr = n! / r! (n-r)!
product
데카르트 곱
from itertools import product, permutations, combinations, combinations_with_replacement
l = 'ABCD'
# product
print("product")
for p in product(l, repeat = 2):
print(p)
print()
# permutations
print("permutations")
for p in permutations(l, 2):
print(p)
print()
# combinations
print("combinations")
for p in combinations(l, 2):
print(p)
print()
# combinations_with_replacement
print("combinations_with_replacement")
for p in combinations_with_replacement(l, 2):
print(p)
print()
# 출력
product
('A', 'A')
('A', 'B')
('A', 'C')
('A', 'D')
('B', 'A')
('B', 'B')
('B', 'C')
('B', 'D')
('C', 'A')
('C', 'B')
('C', 'C')
('C', 'D')
('D', 'A')
('D', 'B')
('D', 'C')
('D', 'D')
permutations
('A', 'B')
('A', 'C')
('A', 'D')
('B', 'A')
('B', 'C')
('B', 'D')
('C', 'A')
('C', 'B')
('C', 'D')
('D', 'A')
('D', 'B')
('D', 'C')
combinations
('A', 'B')
('A', 'C')
('A', 'D')
('B', 'C')
('B', 'D')
('C', 'D')
combinations_with_replacement
('A', 'A')
('A', 'B')
('A', 'C')
('A', 'D')
('B', 'B')
('B', 'C')
('B', 'D')
('C', 'C')
('C', 'D')
('D', 'D')
728x90