데이터

제로베이스 데이터사이언스 스쿨 - Part 03. 기초 수학-13

Leah (리아) 2025. 10. 31. 13:50
반응형

Chapter 01. 기초 수학

 

조합 (Combination) - 순서 없이 선택하기

 

1. 조합의 정의

조합(Combination)
n개의 원소 중에서 r개를 순서에 상관없이 선택하는 경우의 수

개념 설명 예시
순열 순서를 고려하여 나열 (1,2) ≠ (2,1)
조합 순서 상관없이 선택 {1,2} = {2,1}

예시:

  • {1, 2, 3} 중 2개를 선택할 때
    • 가능한 조합: {1,2}, {1,3}, {2,3}
    • 전체 개수:3C2=3

2. 순열과 조합의 관계

조합은 순열의 일부 개념을 나눈 형태로 이해할 수 있다.

구분 계산식 결과
3P2 3×2 6
3C2 3P2 ÷ 2! = 6 ÷ 2 = 3
4P3 4×3×2 24
4C3 4P3 ÷ 3! = 24 ÷ 6 = 4

💡 핵심 요약:
조합 = 순열 ÷ 선택된 원소의 순서(중복 개수)


3. 조합 실습 예제

예제 ①

예제 ②


예제 ③ 확률 응용 문제

카드 5장 중 2장을 선택했을 때,
삼각형과 사각형이 동시에 선택될 확률은?

전체 조합 수:

조건에 맞는 경우: 1
따라서 확률은

💡 조합은 확률, 통계, 조합 최적화 문제의 기본 단위로 활용된다.


4. 파이썬으로 조합 계산하기

파이썬에서는 math 혹은 itertools 모듈을 이용해 조합을 쉽게 구현할 수 있다.

import math

# math.comb() : Python 3.8 이상
print("8C3 =", math.comb(8, 3))
print("7C5 =", math.comb(7, 5))

# 직접 구현 (팩토리얼 활용)
def combination(n, r):
    return math.factorial(n) // (math.factorial(r) * math.factorial(n - r))

print(combination(8, 3))
print(combination(7, 5))

 

출력 결과:

8C3 = 56
7C5 = 21

확률 문제 실습

import math

# 카드 5장 중 2장을 선택했을 때 삼각형+사각형 조합 확률
total = math.comb(5, 2)
success = 1
prob = success / total

print(f"확률: {prob*100}%")  # 10.0%

 

출력 결과:

확률: 10.0%

 

💡 순열에서는 math.perm(),
조합에서는 math.comb()를 활용할 수 있다.

 

 

* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.


 

💡 생각 정리

이번 강의에서는 “선택의 순서가 중요하지 않은 경우”를 다루는 조합 개념을 명확히 이해할 수 있었다.
특히 순열과 조합의 차이를 수식뿐 아니라 예제와 코드로 확인하면서 수학적 개념이 프로그래밍적 사고로 자연스럽게 이어짐을 느꼈다.

또한, 카드 선택이나 확률 문제를 통해 조합이 현실 데이터 분석 및 통계적 모델링의 핵심 기초라는 점도 실감했다.


🚀 적용점

 

  • 프로그래밍 활용
    • math.comb() 또는 itertools.combinations() 활용
    • 큰 데이터셋에서 샘플 조합 생성 시 사용
  • 수학적 응용
    • 확률, 통계, 샘플링 문제에 필수
    • 순열(P)과 조합(C)의 구분을 명확히 이해하기
  • 심화 확장
    • 이항정리 (a+b)n=∑r=0nnCran−rbr(a+b)^n = \sum_{r=0}^{n} nCr a^{n-r}b^r 에 적용
    • 파스칼의 삼각형 구현으로 조합 규칙 시각화

👉 이번 강의는 경우의 수에서 “순서의 개념을 제거한 사고법” 을 배우는 과정이었다.
다음 강의에서는 이를 바탕으로 이항정리, 확률분포, 조합 확장 공식으로 이어질 예정이다.

 

반응형