[공통수학1 시리즈 4편] 다항식의 곱셈과 분배·교환·결합법칙

English version

이번 글의 목표는

다항식의 곱셈을 정확히 이해하고, 교환법칙·결합법칙·분배법칙이 왜 성립하는지 한 번에 이해하기.

  • 다항식의 핵심은 항끼리 곱한 뒤, 같은 차수끼리 정리하는 것
  • 배열(합성곱) 관점은 이 과정을 쉽게 보여주는 도구

1. 다항식 곱셈의 기본 정의

두 다항식을 곱할 때는 항상 같은 규칙을 씁니다.

  1. 한쪽의 각 항을 다른 쪽의 모든 항과 곱한다.
  2. 마지막에 같은 차수끼리 더한다.

예시:

(2x2+3x+1)(x+4)(2x^2+3x+1)(x+4)
xx 44
2x22x^2 2x32x^3 8x28x^2
3x3x 3x23x^2 12x12x
11 xx 44

같은 차수끼리 정리하면

2x3+11x2+13x+42x^3+11x^2+13x+4

이 됩니다.

2. 왜 세로셈(3자리×2자리)과 같은가?

수의 곱셈 231×14231\times14를 생각해 보면,

  • 231×4231\times4를 쓰고
  • 231×10231\times10을 자리 맞춰 이동해서 쓰고
  • 같은 자리끼리 더합니다.

다항식도 구조가 같습니다.

  • (2x2+3x+1)×4(2x^2+3x+1)\times4
  • (2x2+3x+1)×x(2x^2+3x+1)\times x (차수가 1 올라가므로 한 칸 이동과 같은 효과)
  • 같은 차수끼리 더함

즉,

  • 수의 곱셈: 같은 자리값끼리 합침
  • 다항식 곱셈: 같은 차수끼리 합침

3. 배열로 옮겨 보면 (합성곱)

다항식을 계수 배열로 바꿔 봅시다.

  • 2x2+3x+1[2,3,1]2x^2+3x+1 \rightarrow [2,3,1]
  • x+4[1,4]x+4 \rightarrow [1,4]

이제 곱셈 과정을 배열로 쓰면:

  • [2,3,1]×4=[8,12,4][2,3,1]\times4=[8,12,4]
  • [2,3,1]×x=[2,3,1,0][2,3,1]\times x=[2,3,1,0] (한 칸 이동)
  • 같은 위치끼리 더하면 [2,11,13,4][2,11,13,4]

여기서 합성곱을 도장 비유로 보면 훨씬 직관적입니다.

  • 원본 도장: P=[2,3,1]P=[2,3,1]
  • QQ의 각 계수는 "원본 도장 PP를 몇 배로 만들지"를 정함
  • QQ의 항 차수는 "도장을 오른쪽으로 몇 칸 이동해 찍을지"를 결정

즉, QQ의 한 항을 볼 때마다

  1. PP의 각 계수에 QQ의 현재 항 계수를 곱해 부분곱 도장을 만들고
  2. 그 항의 차수만큼 옆으로 밀어 찍고
  3. 이미 찍힌 자국과 겹치는 칸은 더해 누적합니다.

그래서 1변수에서도 합성곱은

"부분곱 도장을 차수만큼 옮겨가며 겹쳐 찍고, 겹친 칸의 값을 더하는 과정"

으로 이해할 수 있습니다. 아래 퀴즈의 Phase 2(부분곱 입력)가 바로 이 과정을 그대로 구현한 단계입니다.

이 방식이 바로 합성곱(컨볼루션)입니다.

중요 포인트:

  • 다항식 개념이 바뀌는 것이 아님
  • "같은 차수끼리 정리"를 배열에서는 "같은 칸끼리 더하기"로 본 것

아래 "다항식의 곱 시각화"에서 단계별로 확인해 보세요.

다항식의 곱 시각화

도장 겹치기(부분곱)로 누적 합 생성

적용 0 / 2
준비됨
0%

계수 설정

다항식을 바꾸고 시작을 누르면 입력 적용과 재생이 함께 진행됩니다.

입력 다항식

2x^2 + 3x + 1

P 배열 = [2, 3, 1]

x + 4

Q 배열 = [1, 4]

도장 생성

Q[1] = 4

상수항부터 계수를 P 배열 전체에 곱하고, 차수가 올라갈수록 왼쪽으로 이동합니다.

이번 Q 계수

4
×

P 배열

231
=

부분곱 도장

8124

4\times P(x) = 8x^2 + 12x + 4

4 × 2 = 84 × 3 = 124 × 1 = 4

도장 누적 보드

x 차수
x^{3}x^{2}x^{1}x^{0}
누적 합
0
0
0
0

4. 결과의 i번째 칸으로 보면 법칙이 보인다

배열

  • P=[p0,p1,p2,]P=[p_0,p_1,p_2,\dots]
  • Q=[q0,q1,q2,]Q=[q_0,q_1,q_2,\dots]

의 합성곱 결과를 R=PQ=[r0,r1,r2,]R=P*Q=[r_0,r_1,r_2,\dots]라고 하면:

  • r0=p0q0r_0=p_0q_0
  • r1=p0q1+p1q0r_1=p_0q_1+p_1q_0
  • r2=p0q2+p1q1+p2q0r_2=p_0q_2+p_1q_1+p_2q_0
  • r3=p0q3+p1q2+p2q1+p3q0r_3=p_0q_3+p_1q_2+p_2q_1+p_3q_0

즉, rir_i는 인덱스 합이 ii인 곱들을 전부 더한 값입니다.

먼저 실제 다항식 예시를 하나 보겠습니다.

P(x)=2x2+3x+1,Q(x)=x+4P(x)=2x^2+3x+1,\quad Q(x)=x+4

배열로 바꾸면

  • P=[2,3,1]P=[2,3,1]
  • Q=[1,4]Q=[1,4]

이고 결과는

R=[2,11,13,4]R=[2,11,13,4]

입니다. 여기서 가운데 값 1111r1r_1이고,

인덱스 합이 1이 되는 쌍만 모아서 계산합니다.

  • (0,1)(0,1): p0q1=24=8p_0q_1=2\cdot4=8
  • (1,0)(1,0): p1q0=31=3p_1q_0=3\cdot1=3

왜 이 둘만 쓰는가?

  • 규칙이 "행 인덱스 + 열 인덱스 = 결과 인덱스"이기 때문입니다.
  • 지금은 결과 인덱스가 1이므로 가능한 쌍은 (0,1),(1,0)(0,1),(1,0)뿐입니다.

따라서

r1=24+31r_1=2\cdot4+3\cdot1

가 되고, r1=11r_1=11입니다.

다항식으로 연결하면,

  • p0=2p_0=22x22x^2, q1=4q_1=4는 상수 44
  • p1=3p_1=33x3x, q0=1q_0=1xx

이라서 둘 다 x2x^2항을 만들고,

8x2+3x2=11x28x^2+3x^2=11x^2

로 정리됩니다.

이제 이 i번째 요소 구성으로 세 법칙을 봅시다.

4-1, 4-2, 4-3 자세히 보기 (교환·결합·분배)

4-1. 교환법칙

PQ=QPP*Q=Q*P

(PQ)(P*Q)의 i번째 요소를

ri=p0qi+p1qi1++piq0r_i=p_0q_i+p_1q_{i-1}+\cdots+p_iq_0

라고 쓰면, (QP)(Q*P)의 i번째 요소는

ri=q0pi+q1pi1++qip0r'_i=q_0p_i+q_1p_{i-1}+\cdots+q_ip_0

입니다. 각 항은 같은 곱의 순서만 바뀐 것이므로 ri=rir_i=r'_i. 즉, 교환법칙이 성립합니다.

예를 들어 i=2i=2이면

r2=p0q2+p1q1+p2q0,r2=q0p2+q1p1+q2p0r_2=p_0q_2+p_1q_1+p_2q_0, \quad r'_2=q_0p_2+q_1p_1+q_2p_0

이고, 각 항이 짝을 이루어 완전히 같습니다. 즉, i번째 요소를 하나씩 비교하면 모든 칸이 같아집니다.

4-2. 결합법칙

(PQ)T=P(QT)(P*Q)*T=P*(Q*T)

i번째 요소만 보면,

  • ((PQ)T)i((P*Q)*T)_i
  • (P(QT))i(P*(Q*T))_i

결국 인덱스 합이 i인 paqbtcp_aq_bt_c 항들을 모두 더한 값입니다.

중간에 먼저 계산하는 괄호만 다르고, 최종적으로 i번째 요소에 모이는 항의 집합이 같으므로 결합법칙이 성립합니다.

직관적으로는,

  • 왼쪽은 먼저 P,QP,Q를 섞어 부분합을 만든 뒤 TT를 합치고
  • 오른쪽은 먼저 Q,TQ,T를 섞어 부분합을 만든 뒤 PP를 합칩니다.

하지만 i번째 칸 입장에서는 결국 같은 원소 3개를 뽑아 만든 곱들만 모입니다. 그래서 괄호 순서가 달라도 결과가 같습니다.

4-3. 분배법칙

P(Q+T)=PQ+PTP*(Q+T)=P*Q+P*T

i번째 요소에서 보면

  • 왼쪽: p0(qi+ti)+p1(qi1+ti1)+p_0(q_i+t_i)+p_1(q_{i-1}+t_{i-1})+\cdots
  • 항별 분배 후: (PQ)(P*Q)의 i번째 요소 + (PT)(P*T)의 i번째 요소

이므로 분배법칙이 성립합니다.

예를 들어 i=1i=1이면

(P(Q+T))1=p0(q1+t1)+p1(q0+t0)=(p0q1+p1q0)+(p0t1+p1t0)=(PQ)1+(PT)1\begin{aligned} \bigl(P*(Q+T)\bigr)_1 &=p_0(q_1+t_1)+p_1(q_0+t_0)\\ &=(p_0q_1+p_1q_0)+(p_0t_1+p_1t_0)\\ &=(P*Q)_1+(P*T)_1 \end{aligned}

처럼 i번째 요소에서 바로 확인됩니다.

5. 1변수 곱셈 연습 퀴즈

아래 퀴즈는 2장/3장과 같은 방식으로,

  • 문제를 보고
  • 내림차순 계수 배열을 입력하고
  • 부분곱 과정을 확인

할 수 있도록 만든 실습 요소입니다.

1변수 다항식 곱셈 퀴즈

배열화 → 부분곱(합성곱) → 최종답 3단계

1변수 다항식 곱셈 퀴즈

문제

P(x)=0

Q(x)=0

Phase 1. 다항식을 배열로 바꾸기 (내림차순)

6. 2변수 다항식으로 확장

핵심은 1변수와 같습니다.

  • 1변수: 계수 1차원 배열
  • 2변수: 계수 2차원 배열(행렬)
  • 연산 규칙: 계수는 곱하고, 지수(행/열 위치)는 더해서 누적

즉, 2변수도 "배열로 계산"할 수 있습니다.

6-1. 행렬(2차원 배열)로 곱셈 예시

예시: P(x,y)=x+yP(x,y)=x+y, Q(x,y)=xyQ(x,y)=x-y

결과 행렬 RR는 0으로 시작해서, 아래 누적 연산으로 만듭니다.

R[r+u,  c+v]+=Q[r,c]P[u,v]R[r+u,\;c+v] \mathrel{+}= Q[r,c]\cdot P[u,v]

즉, Q에서 0이 아닌 값이 있는 요소마다 P 도장을 만들고, 위치만큼 이동해 겹쳐 찍으며 더하는 방식입니다.

한 줄로 말하면,

Q의 계수로 P를 곱해 도장을 만든 뒤, 겹쳐 찍듯이 누적해서 더하는 것이 2차원 합성곱입니다.

이 예시의 최종 결과는

(x+y)(xy)=x2y2(x+y)(x-y)=x^2-y^2

입니다. (겹치는 xyxy 항은 0으로 상쇄)

아래 시각화에서 직접 식을 입력하면, 도장 생성 -> 겹치기 -> 누적 덧셈이 한 화면에서 순차적으로 진행됩니다.

2변수 다항식 곱(도장 겹치기)

도장 생성 -> 겹치기 -> 누적 덧셈

적용 0 / 2
P(x,y)=x+y , Q(x,y)=x-y
현재 공식: 직접 입력

도장 목록

Q의 0이 아닌 성분으로부터 생성된 도장 2개

원래 Q 행렬과 선택 위치

y^{1}x^{1} 0
y^{1}x^{0} -1
y^{0}x^{1} 1
y^{0}x^{0} 0

현재 선택된 Q 성분이 P의 이동 위치를 결정합니다.

x/y
x^{2}
x^{1}
x^{0}
y^{2}
y^{1}
y^{0}
0
0
0
0
0
0
0
0
0

현재 연산과 최종 결과

모든 도장 적용 완료 (최종 결과 행렬)

7. 핵심 정리

  • 다항식 곱셈의 본질: 항끼리 곱하고, 같은 차수끼리 더하기
  • 세로셈과 같은 구조를 가지므로 과정이 직관적임
  • 배열(합성곱) 관점은 원리를 쉽게 보이게 하는 설명 도구임
  • 결과의 i번째 칸 관점으로 보면 교환·결합·분배법칙 이유를 한 번에 이해할 수 있음

한 줄 결론:

다항식의 곱셈은 복잡한 새 규칙이 아니라, "분배 + 같은 차수 정리"를 체계적으로 수행하는 과정이다.

💬 댓글

이 글에 대한 의견을 남겨주세요