반응형

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

[코딩X수학 개념 #17] 지수·로그함수의 연산 : 밑 조건과 거듭제곱근의 예외를 통제하는 최적화 알고리즘

안녕하세요! 다중 조건식의 그물망을 멤버십 연산자(in / not in)로 깐깐하게 해체하며 수능 공통과목의 부분집합 추론을 정복했던 지난 16화 내용, 다들 완벽하게 습득하셨을 겁니다. 논리적 제어력을 최고조로 끌어올린 지금, 드디어 수1의 본격적인 4점짜리 킬러 단원인 지수함수와 로그함수를 격파하러 가보겠습니다.

수능 시험지 수학Ⅰ 섹션에서 오답률 상위권을 차지하는 유형이 있습니다. 바로 "어떤 거듭제곱근이 음의 실수가 되도록 하는 자연수의 개수를 구하시오"라거나, "로그의 값이 존재하기 위한 모든 정수 $a$의 합을 구하시오" 같은 조건 결합 문항입니다. 많은 학생이 수식을 대충 정리하다가 교과서 구석에 적힌 '밑 조건($a > 0, a \neq 1$)'을 무심코 놓치거나, 짝수/홀수 거듭제곱근의 예외를 분리하지 못해 허무하게 4점을 헌납합니다.

하지만 단 하나의 예외 상황(Exception)이나 유효하지 않은 연산도 칼같이 잡아내는 컴퓨터의 연산 제어 시스템과 math 라이브러리의 눈을 빌려오면, 복잡하게 뒤엉킨 지수·로그의 대소 관계와 성립 조건들이 한눈에 투명하게 해체됩니다. 수능 시험장에서 출제자가 파놓은 예외 조건의 함정을 본능적으로 간파하고 정답을 가려내는 '무결점 연산 직관'을 이식해 드리겠습니다.


1 수학의 로그 정의와 코딩의 ValueError: "밑과 진수 조건은 절대적이다"

수학 교과서에서 $\log_a x$ 가 정의되기 위한 조건은 무척 엄격합니다. 밑 조건($a > 0, a \neq 1$)진수 조건($x > 0$)을 반드시 만족해야 하죠. 수능 출제자들은 이 조건을 식 속에 교묘히 숨겨두고 학생들이 실수하기만을 기다립니다.

컴퓨터에게 로그 연산을 시킬 때 이 성질이 얼마나 절대적인지 곧바로 확인할 수 있습니다. 파이썬의 내장 수학 모듈인 math.log(x, a) 함수에 진수 조건이나 밑 조건을 위반하는 음수나 1을 집어넣는 순간, 컴퓨터는 연산을 거부하고 즉시 ValueError(값 오류)를 터뜨리며 작동을 멈춥니다.

🔍 10초 만에 각인하는 예외 통제 매칭

  • 수학의 로그 조건 : 밑은 1이 아닌 양수여야 하고, 진수는 무조건 양수여야 한다!
  • 코딩의 예외 처리 : 조건 위반 시 ValueError 발생 ➡️ 조건문(if)으로 범위를 먼저 필터링해야 안전함!

이처럼 지수와 로그는 대충 수식만 푼다고 끝나는 것이 아니라, 연산이 가능한 '정의구역'을 먼저 엄밀하게 한정 짓는 알고리즘적 사고가 전제되어야만 정답을 도출할 수 있는 구조입니다.


2 실전 분석: 수능 수1 단골 '로그의 값이 존재하기 위한 조건' 추론하기

실제 6월/9월 평가원 모의고사 4점짜리로 단골 출제되는 '조건에 따른 로그 식의 성립 범위 추적' 문항을 코딩의 예외 제어 회로로 시각화해 보겠습니다.

"모든 실수 $x$에 대하여 $\log_{(a-2)} (x^2 - ax + 2a)$ 의 값이 존재하도록 하는 모든 정수 $a$의 개수를 구하시오."

밑 조건($a-2>0, a-2 \neq 1$)과 진수 조건(이차부등식이 항상 0보다 클 조건 ➡️ 판별식 $D < 0$)이 동시에 맞물려야 하는 문제입니다. 컴퓨터의 눈으로 정수 $a$의 후보군을 돌리며 에러 없이 안전하게 연산되는 정답 상자를 찾아봅시다.

import math

# 정답 조건을 만족하는 정수 a들을 담을 주머니
valid_a_list = []

# 정수 a의 탐색 범위를 -10부터 10까지 훑어봅니다.
for a in range(-10, 11):
    
    # [조건 1: 밑 조건 체크] 밑(base)은 0보다 커야 하고, 1이 아니어야 한다.
    base = a - 2
    if not (base > 0 and base != 1):
        continue  # 밑 조건을 위반하면 다음 정수로 패스! (ValueError 사전 차단)
        
    # [조건 2: 진수 조건 체크] 모든 실수 x에 대해 이차식 x^2 - ax + 2a > 0 이려면
    # 그래프가 붕 떠야 하므로, 판별식 D = a^2 - 8a < 0 이어야 합니다.
    discriminant = a**2 - 8 * a
    
    # 판별식이 0보다 작다(참)면 진수 조건까지 완벽히 클리어한 것입니다.
    if discriminant < 0:
        valid_a_list.append(a)

print("밑 조건과 진수 조건을 모두 통과한 정수 a:", valid_a_list)
print("수능 최종 정답 개수:", len(valid_a_list))  # 결과: [4, 5, 6, 7] ➡️ 총 4개

🧠 이 코딩적 필터링 감각이 수능 시험장에서 발휘하는 파괴력

① '예외 조건(Exception)'을 먼저 선언하는 습관 :
수학 문제를 풀 때 많은 학생이 판별식($a^2-8a<0 \rightarrow 0if not (base > 0 and base != 1): continue 흐름처럼, 최상위권의 뇌는 핵심 연산을 시작하기도 전에 예외적인 제한 조건(밑 조건: $a>2, a \neq 3$)을 먼저 머릿속에 박아두고 출발합니다. 이 조건망이 뼈대에 새겨지면 $0

② 거듭제곱근 정수 조건 문항의 본질적 제어 :
수능에 단골로 등장하는 $n$이 짝수일 때와 홀수일 때 실수 거듭제곱근의 개수($f(n)$) 분류 문제도 코딩의 눈으로 보면 아주 명쾌합니다. 짝수 제곱근 연산 상자는 우변이 양수일 때만 2개의 실수를 뱉고, 홀수 제곱근 연산 상자는 우변의 부호에 상관없이 무조건 1개의 실수를 리턴하는 '조건 분기형 알고리즘'입니다. 지수·로그를 공식의 결합이 아니라 철저한 예외 제어 시스템으로 인식하는 순간, 수능 시험장에서 실수가 나올 구멍이 완벽하게 메워집니다.


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

1. 수능 수학Ⅰ의 지수·로그 연산은 식을 풀기 전 성립 조건 범위부터 설정하는 '예외 처리 알고리즘'과 일치한다.
2. 로그의 밑 조건($a>0, a \neq 1$)을 연산문 이전에 필터링하는 훈련을 통해 오답의 함정을 완벽하게 회피한다.
3. 거듭제곱근과 지수·로그의 부호 제어를 조건문의 눈으로 엄밀하게 분리하면, 수능 4점짜리 변별력 문항을 실수 제로(0)의 속도로 가볍게 정복한다!

다음 시간(18화) 예고:
지수와 로그의 엄밀한 조건 제어망을 구축하여 수1 연산의 기초 체력을 완성했습니다! 그렇다면 이 지수·로그가 평면 위의 그래프로 그려진 뒤, 수능 코어 4점 유형으로 출제되는 '두 지수·로그함수의 교점 평행이동과 대소 관계 비교' 문제는 어떻게 뚫어내야 할까요? 그래프의 증가·감소 성질과 경계값 추적을 코딩의 이진 탐색(Binary Search) 알고리즘의 시각으로 연결해 시원하게 찢어보겠습니다. 다음 시간에 만나요!

반응형

+ Recent posts