04. 네 번째 수업: 유리수의 덧셈과 뺄셈 (Addition & Subtraction)

수학에서 더하기와 빼기는 그저 사과를 바구니에 더 담거나 빼는 단순한 행위를 넘어, “수직선 위에서의 움직임(이동)”을 의미하게 됩니다. 이것이 곧 훗날 물리학에서 배우는 벡터(Vector)의 시작점입니다!


1. 수직선 위의 이동 화살표

더하기($+$) 기호가 나오면 내 차의 머리를 오른쪽(양수 방향)으로 향합니다. 반대로 빼기($-$) 기호가 나오면 내 차의 머리를 왼쪽(음수 방향)으로 반전시킵니다!

  1. $(+5) + (+3)$ => 오른쪽으로 5칸 간 상태에서, 머리를 그대로 오른쪽으로 하고 3칸 추가로 직진 $\rightarrow$ $+8$
  2. $(-5) + (+3)$ => 왼쪽으로 5칸(-5) 가 있는 빚보증 상태에서, 보너스를 받아 오른쪽 방향으로 3칸 이동 $\rightarrow$ 그래도 여전히 빚이 남은 $-2$

그렇다면 빼기는 어떨까요? 빼기($-$) 기호는 유 턴(U-Turn) 입니다! 방향을 반대로 돌리라는 뜻이죠.

  1. $(+5) - (+3)$ => 5칸 온 상태에서 뒤를 확 돌아서 거꾸로 3칸 걸어간다 $\rightarrow$ $+2$
  2. $(+5) - (-3)$ => 빼기니까 뒤를 돌아 유턴했다가, 뒤로 걷기(-3)를 하니까 결국 다시 3칸 앞으로 가는 꼴이 됩니다! 마이너스의 마이너스는 플러스(+)! $\rightarrow$ $+8$
수직선에서 1.5만큼 전진했다가 왼쪽으로 반전하여 -3만큼 이동하는 유리수 벡터 드로잉 SVG 애니메이션

2. 덧셈의 교환법칙과 결합법칙

유리수의 덧셈은 순서를 매우 착하게 지킵니다. 순서를 바꾸거나($A + B = B + A$), 괄호를 먼저 묶어 계산($ A + (B + C) = (A + B) + C $)해도 결과가 항상 똑같이 나옵니다. 이것은 내비게이션 경로탐색 코드를 짤 때 이동의 순서가 뒤죽박죽이 되어도 목적지의 절대 좌표는 변하지 않는다는 강력한 보증 수표가 됩니다.

3. 분수의 덧셈과 뺄셈

만약 무거운 갑옷을 입고 조각조각난 유리수(분수)의 덧셈과 뺄셈을 직면한다면 어떻게 해야 할까요? 조각난 크기가 다르면 더할 수 없다! 앞 시간에서 배웠던 통분(분모를 같게 만듦)이 여기서 100% 필수입니다.

\[\frac{1}{2} + \frac{1}{3} = \frac{3}{6} + \frac{2}{6} = \frac{5}{6}\]

조각의 크기를 가장 작게 맞추어야(최소공배수 $6$) 비로소 조각의 개수(분자)를 온전히 더할 수 있습니다!

4. 파이썬과 Fractions 모듈로 연산하기

파이썬의 분수 객체는 통분과 더하기, 빼기를 내부에서 알아서 기가 막히게 처리합니다. 프로그래머는 공배수에 뇌 에너지를 쓸 필요 없이 그냥 더하기(+), 빼기(-) 기호만 날리면 됩니다.

# [Python] 유리수의 자동 통분 덧셈과 뺄셈
from fractions import Fraction

a = Fraction(1, 2)  # 1/2
b = Fraction(1, 3)  # 1/3

# 유리수의 더하기 (자동 통분)
add_result = a + b
print(f"덧셈 결과: {add_result}")

# 유리수의 빼기 (자동 통분)
sub_result = a - b
print(f"뺄셈 결과: {sub_result}")

# 부호 반전 (-의 -는 +가 된다)
c = Fraction(-1, 4)
magic_result = a - c  # 1/2 - (-1/4)
print(f"부호 반전 뺄셈: {a} - ({c}) = {magic_result}")
print(f"이는 {a} + {Fraction(1,4)} 와 똑같습니다!")

[실행 결과]

덧셈 결과: 5/6
뺄셈 결과: 1/6
부호 반전 뺄셈: 1/2 - (-1/4) = 3/4
이는 1/2 + 1/4 와 똑같습니다!

이 코드를 실행해보면 알 수 있듯이, 수학의 교환 법칙과 “마이너스를 빼면 플러스가 된다”는 유턴 논리는 컴퓨터 언어 내부에 한 치의 오류도 없이 하드코딩되어 있습니다. 우리는 이 도구를 믿고 가져다 쓰기만 하면 됩니다!

서브목차