1 분 소요

이 글을 참고했다.

조합(Combination)

  • 순서를 고려하지 않고 뽑는 경우이다.
    • {1,2}, {2,1} 은 한 가지 경우로 취급한다.
  • nCr: 서로 다른 n개에서 순서를 생각하지 않고 r개를 택하는 경우의 수
from itertools import combinations
lst = [1,2,3]

for x in combinations(lst, 2):
  print(x)

# (1, 2)
# (1, 3)
# (2, 3)

순열 (Permutation)

  • 순서를 고려하여 뽑는 경우이다.
    • {1,2}, {2,1} 은 두 가지 경우로 취급한다.
  • nPr: 서로 다른 n개에서 r개를 택하여 일렬로 나열하는 경우의 수
from itertools import permutations
lst = [1,2,3]

for x in permutations(lst, 2):
  print(x)

# (1, 2)
# (1, 3)
# (2, 1)
# (2, 3)
# (3, 1)
# (3, 2)

중복 조합

  • 중복조합은 조합과는 다르게 같은 숫자를 중복하여 사용할 수 있다.
  • nHr: 중복 가능한 n개에서 순서를 생각하지 않고 r개를 택하는 경우의 수
from itertools import combinations_with_replacement
lst = [1,2]

for x in combinations_with_replacement(lst, 3):
   print(x)

# (1, 1, 1)
# (1, 1, 2)
# (1, 2, 2)
# (2, 2, 2)

중복 순열

  • 중복순열은 순열과는 다르게 같은 숫자를 중복하여 사용할 수 있다.
  • nπr : 중복 가능한 n개에서 r개를 택하여 일렬로 나열하는 경우의 수
from itertools import product
lst = [1,2]

# 2개중 중복을 포함하여 3개 뽑는 경우
for x in product(lst, repeat = 3):
   print(x)

# (1, 1, 1)
# (1, 1, 2)
# (1, 2, 1)
# (1, 2, 2)
# (2, 1, 1)
# (2, 1, 2)
# (2, 2, 1)
# (2, 2, 2)


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기

태그:

카테고리:

업데이트: