본문 바로가기
Skills/Python

파이썬 순열/조합/중복조합

by Hoseok 2023. 5. 17.
728x90
반응형

 

 

파이썬에서 경우의 수(조합, 순열)를 계산하기 위해 itertools 모듈을 활용할 수 있습니다. 이 모듈은 순열(permutations), 조합(combinations), 조합 중복을 포함한 다양한 경우의 수 계산 기능을 제공합니다.

itertools 모듈을 사용하려면 먼저 모듈을 import 해야 합니다:

 

import itertools

 

순열(Permutations):
순열은 원소들의 순서에 따라 가능한 모든 경우의 수를 생성합니다. itertools.permutations() 함수를 사용하여 순열을 생성할 수 있습니다. 함수에는 원소들을 포함한 iterable 객체와 원소의 개수(선택적)를 전달합니다.

 

import itertools

# 순열 생성 예시
items = [1, 2, 3]
permutations = itertools.permutations(items)  # 모든 순열 생성
for p in permutations:
    print(p)

 

위 예시에서는 [1, 2, 3] 리스트의 모든 순열을 생성하여 출력합니다.

조합(Combinations):
조합은 주어진 원소들 중에서 일부를 선택하여 가능한 모든 조합을 생성합니다. itertools.combinations() 함수를 사용하여 조합을 생성할 수 있습니다. 함수에는 원소들을 포함한 iterable 객체와 조합의 길이(선택적)를 전달합니다.

 

import itertools

# 조합 생성 예시
items = [1, 2, 3]
combinations = itertools.combinations(items, 2)  # 길이 2의 조합 생성
for c in combinations:
    print(c)

 

위 예시에서는 [1, 2, 3] 리스트에서 길이 2인 모든 조합을 생성하여 출력합니다.

중복 조합(Combinations with Replacement):
중복 조합은 주어진 원소들 중에서 중복을 허용하여 일부를 선택하여 가능한 모든 조합을 생성합니다. itertools.combinations_with_replacement() 함수를 사용하여 중복 조합을 생성할 수 있습니다. 함수에는 원소들을 포함한 iterable 객체와 조합의 길이(선택적)를 전달합니다.

 

import itertools

# 중복 조합 생성 예시
items = [1, 2, 3]
combinations_with_replacement = itertools.combinations_with_replacement(items, 2)  # 길이 2의 중복 조합 생성
for c in combinations_with_replacement:
    print(c)

 

위 예시에서는 [1, 2, 3] 리스트에서 길이 2인 모든 중복 조합을 생성하여 출력합니다.

itertools 모듈은 다양한 경우의 수 계산 기능을 제공하므로, 원하는 경우에 따라 해당 함수를 사용하여 경우의 수를 생성하고 활용할 수 있습니다.

728x90
반응형

'Skills > Python' 카테고리의 다른 글

알면 유용한 파이썬 문법  (0) 2023.06.22