반응형

수능 수학, 코딩의 눈으로 직관 뚫기

[코딩X수학 개념 #14] 조건부 확률 : 전체 주머니를 통째로 갈아엎는 코딩 필터링으로 수능 4점 문장제 완벽 정복

안녕하세요! 모든 가능성을 훑는 완전 탐색(Brute Force) 알고리즘을 통해 수능 확률과 통계의 '누락과 중복 없는 카운팅' 눈을 장착했던 지난 13화 내용, 다들 머릿속에 뼈대를 든든하게 세우셨을 겁니다. 순열과 조합의 기본 무기를 갖췄다면, 이제 수능 확통 단원에서 가장 오답률이 높고 오개념이 판치는 핵심 킬러 주제를 정복할 시간입니다.

수능 시험지 확통 단원 후반부 4점 배점 문항을 펼치면 어김없이 우리를 기다리는 문장이 있습니다. 바로 "~했을 때, 그 사건이 ~일 확률을 구하시오"라는 조건부 확률(Conditional Probability) 문제입니다. 많은 학생이 교과서 공식인 $P(B \mid A) = \frac{P(A \cap B)}{P(A)}$를 무작정 외워 풀다가, 분모에 어떤 사건을 넣어야 할지 헷갈려 엉뚱한 결괬값을 도출하고 무너집니다.

하지만 기존의 전체 데이터를 완전히 갈아엎고, 특정 조건을 만족하는 데이터들만 모아 새로운 표본공간(리스트)을 즉시 갱신하는 코딩의 데이터 필터링 회로의 시각을 빌려오면, 이 복잡한 조건부 확률 문제가 소름 돋도록 명쾌하게 풀리게 됩니다. 수능 시험장에서 문장제 문제를 읽자마자 정답의 비율을 자로 잰 듯 뽑아내는 강력한 직관을 심어드리겠습니다.


1 조건부 확률의 본질: 표본공간($U$)을 조건 상자($A$)로 즉시 전환하기

수학 교과서에서 사건 $A$가 일어났을 때 사건 $B$의 조건부 확률은 $P(B \mid A)$라고 씁니다. 이 기호의 진정한 본질은 "이제부터 전체 세상이었던 표본공간 $U$는 잊어라! 오직 사건 $A$에 속하는 영역만을 '새로운 전체 세상'으로 삼고, 그 안에서 $B$가 차지하는 비율을 세라"는 뜻입니다.

컴퓨터 과학에서 빅데이터를 다룰 때 이와 완벽하게 일치하는 메커니즘을 매 순간 사용합니다. 전교생 데이터 리스트에서 "남학생 데이터만 따로 추출해라"라고 명령을 내리면, 컴퓨터는 기존 전체 리스트를 폐기하고 남학생들만 모인 새로운 서브 리스트(Sub-list)를 메모리에 만듭니다.

즉, 수능 조건부 확률 계산은 코딩에서 [1단계: 조건 $A$를 만족하는 원소만 걸러 새 주머니 만들기] ➡️ [2단계: 그 주머니 안에서 조건 $B$까지 만족하는 원소 비율 카운팅하기]로 이어지는 아주 직관적인 '2단계 데이터 리스트 갱신 알고리즘'인 것입니다.


2 실전 분석: 수능 확통 단골 '임의로 선택한 제품이 불량일 때' 유형 해체

실제 수능 및 평가원 모의고사에 매년 번호를 바꿔가며 100% 출제되는 '두 집단과 조건부 확률 문장제' 문항을 코딩의 눈으로 분석해 보겠습니다.

" 어느 학원의 수능 확통 선택자 중 고3 학생은 60%이고, N수생은 40%이다. 고3 학생 중 확통 1등급 비율은 10%이고, N수생 중 확통 1등급 비율은 20%이다. 이 학원 확통 선택자 중 임의로 고른 한 학생이 '1등급 학생'이었을 때, 이 학생이 'N수생'일 확률을 구하시오."

글이 길어지면 조건이 머릿속에서 엉킵니다. 하지만 컴퓨터가 가상의 학생 1,000명의 데이터를 만들고 조건에 맞춰 주머니를 갱신해 나가는 파이썬 시뮬레이션 회로를 보면 구조가 자로 잰 듯 투명해집니다.

💻 표본공간 리스트가 즉시 갱신되는 필터링 회로
# [상황 설정] 학원 전체 학생 1000명의 가상 표본공간을 세밀하게 분할합니다.
total_students = 1000

# 고3 학생 수와 N수생 학생 수 계산
go3_total = int(total_students * 0.6)  # 600명
nsu_total = int(total_students * 0.4)  # 400명

# 각 집단 중 1등급 학생 수 카운팅
go3_grade1 = int(go3_total * 0.1)      # 60명 (고3 이면서 1등급)
nsu_grade1 = int(nsu_total * 0.2)      # 80명 (N수생 이면서 1등급)

# [핵심 알고리즘 1단계] 수능 문장: "~였을 때" 가 발동하는 순간, 
# 표본공간은 오직 '1등급 학생 주머니'로 완전히 갈아엎어집니다.
new_universe_box = go3_grade1 + nsu_grade1  # 새로운 분모: 60 + 80 = 140명

# [핵심 알고리즘 2단계] 그 새로운 주머니 안에서 출제자가 요구한 'N수생'의 숫자를 분자로 올립니다.
target_target_box = nsu_grade1               # 새로운 분자: 80명

# 최종 조건부 확률 계산
conditional_prob = target_target_box / new_universe_box
print("새롭게 필터링된 전체 분모(1등급 총합):", new_universe_box)
print("조건부 확률 최종 정답 P(N수생|1등급):", round(conditional_prob, 4)) # 80/140 = 4/7

🧠 이 코딩적 필터링 감각이 수능 시험장에서 일으키는 파괴력

① 분모 갱신의 시각화 (기존 분모의 과감한 삭제) :
수학 공식을 대충 외운 학생들은 조건부 확률 문제를 풀 때 분모에 습관적으로 전체 학생 수인 1000을 넣거나, 혹은 고3 비율을 따로 구하다가 식이 꼬입니다. 하지만 위 코드의 new_universe_box 메커니즘을 접한 학생은 수능 문장에서 "~였을 때"라는 글자가 보이면 본능적으로 칠판 위의 모든 기존 표본공간을 싹 지워버립니다. 그리고 출제자가 제시한 조건(1등급)에 해당하는 데이터 개수의 합($60+80=140$)만을 구해서 분모에 '먼저' 박아버리는 완벽한 실전 행동 강령이 확립됩니다.

② 문장제 문제를 알고리즘 구조도로 치환하는 눈 :
수능 확통 4점짜리 문장제 문제는 정보의 양이 많아 복잡해 보이지만, 코딩의 계층적 데이터 분류(고3/N수생 ➡️ 각각의 1등급 여부) 기법을 장착하면 문제를 읽는 속도와 식을 설계하는 차원이 달라집니다. 긴 문장을 읽자마자 뇌가 자동으로 데이터를 분류하고, '새로운 분모 주머니 생성 후 최종 타깃 변수 카운팅'이라는 2단계 흐름 제어 파이프라인으로 문제를 기계적으로 난도질하여 정답률을 100%로 끌어올리게 됩니다.


🎯 14화 수능 도약을 위한 핵심 노트

1. 수능 확통의 핵심인 조건부 확률은 기존 표본공간을 폐기하고 특정 조건의 데이터만 모으는 '데이터 리스트 갱신 알고리즘'이다.
2. 문장제 문제에서 "~였을 때"는 새로운 분모 상자를 선언하라는 컴퓨터의 무조건적인 명령어와 같다.
3. 새 주머니 속에서 타깃 데이터의 비율을 구하는 2단계 필터링 흐름을 탑재하면, 수능 4점짜리 복잡한 문장제 문항을 오답률 0%의 속도로 가볍게 정복한다!

다음 시간(15화) 예고:
조건에 따라 세상(분모)을 자유자재로 바꾸며 확률을 통제하는 마법을 정복했습니다! 그렇다면 이 확률의 세계를 확장하여, 수많은 시행을 거쳤을 때 데이터들이 어떤 중심과 흩어짐을 가지는지 분석하는 확률과 통계의 핵심 꽃, 수능 확통 배점의 절반을 차지하는 [확률변수와 이산확률분포]의 비밀을 코딩의 통계적 딕셔너리(Dictionary) 구조의 눈으로 정밀 해체해 보겠습니다. 수능 확통의 최종 정점을 향해 달립니다. 다음 시간에 만나요!

반응형

+ Recent posts