프로그래밍공부(Programming Study)/이산 수학(Discrete Mathematis)

조합, 순열, 중복조합, 중복순열, 팩토리얼: 개념과 차이점 정리

Chaany 2024. 8. 18.
728x90

1. 조합이란?

조합(combination)이란, 순서에 상관없이 주어진 집합에서 특정 개수의 원소를 선택하는 방법을 말합니다. 조합에서는 순서가 중요하지 않기 때문에, 예를 들어 {A, B}와 {B, A}는 같은 조합으로 간주됩니다.

  • 표기법: 조합의 개수는 (\binom{n}{r}) 또는 (C(n, r))로 표기되며, 이는 n개의 원소 중 r개의 원소를 선택하는 방법의 수를 나타냅니다.
  • 공식: 조합의 수는 다음과 같이 계산됩니다:
    [
    \binom{n}{r} = \frac{n!}{r!(n-r)!}
    ]
2. 순열이란?

순열(permutation)이란, 주어진 집합에서 특정 개수의 원소를 선택하여 순서를 고려하여 배열하는 방법을 말합니다. 순열에서는 순서가 중요하기 때문에, 예를 들어 {A, B}와 {B, A}는 서로 다른 순열로 간주됩니다.

  • 표기법: 순열의 개수는 (P(n, r))로 표기되며, 이는 n개의 원소 중 r개의 원소를 선택하여 순서 있게 배열하는 방법의 수를 나타냅니다.
  • 공식: 순열의 수는 다음과 같이 계산됩니다:
    [
    P(n, r) = \frac{n!}{(n-r)!}
    ]
3. 중복조합이란?

중복조합(combination with repetition)이란, 원소를 중복하여 선택할 수 있는 조합을 말합니다. 예를 들어, {A, A}와 {A, B}와 같은 선택이 가능합니다.

  • 표기법: 중복조합의 개수는 (\binom{n+r-1}{r})로 표기되며, 이는 r개의 원소를 중복을 허용하여 n개의 원소에서 선택하는 방법의 수를 나타냅니다.
  • 공식: 중복조합의 수는 다음과 같이 계산됩니다:
    [
    \binom{n+r-1}{r} = \frac{(n+r-1)!}{r!(n-1)!}
    ]
4. 중복순열이란?

중복순열(permutation with repetition)이란, 원소를 중복하여 선택할 수 있는 순열을 말합니다. 이는 n개의 원소 중 r개를 중복을 허용하여 순서 있게 배열하는 방법입니다.

  • 표기법: 중복순열의 개수는 (n^r)로 표기되며, 이는 r개의 자리에 n개의 원소를 중복을 허용하여 배열하는 방법의 수를 나타냅니다.
  • 공식: 중복순열의 수는 다음과 같이 계산됩니다:
    [
    n^r
    ]
5. 팩토리얼이란?

팩토리얼(factorial)이란, 자연수 n에 대해 1부터 n까지의 모든 자연수를 곱한 값을 의미합니다. 팩토리얼은 순열과 조합의 계산에 자주 사용됩니다.

  • 표기법: 팩토리얼은 (n!)로 표기되며, n이 0일 때는 (0! = 1)로 정의됩니다.
  • 공식: 팩토리얼의 수는 다음과 같이 계산됩니다:
    [
    n! = n \times (n-1) \times \dots \times 2 \times 1
    ]
    예를 들어, (5! = 5 \times 4 \times 3 \times 2 \times 1 = 120)입니다.
6. 조합, 순열, 중복조합, 중복순열의 차이점 정리
  • 순서의 유무:
    • 순열중복순열은 순서를 고려합니다.
    • 조합중복조합은 순서를 고려하지 않습니다.
  • 중복의 허용 여부:
    • 중복순열중복조합은 원소의 중복을 허용합니다.
    • 순열조합은 원소의 중복을 허용하지 않습니다.
7. 구체적인 예시와 Python 코드 예제

다음은 Python을 사용하여 순열과 조합을 계산하는 간단한 예제입니다.

import itertools

# 순열 계산
items = ['A', 'B', 'C']
permutations = list(itertools.permutations(items, 2))
print("순열:", permutations)

# 조합 계산
combinations = list(itertools.combinations(items, 2))
print("조합:", combinations)

# 중복조합 계산
combinations_with_replacement = list(itertools.combinations_with_replacement(items, 2))
print("중복조합:", combinations_with_replacement)

# 중복순열 계산
product = list(itertools.product(items, repeat=2))
print("중복순열:", product)

이 코드는 다양한 조합과 순열을 계산하는 방법을 보여줍니다. Python의 itertools 모듈을 사용하여 쉽게 조합, 순열, 중복조합, 중복순열을 구할 수 있습니다.

728x90

댓글