11강 / 20강

수학적 귀납법 — 도미노 쓰러뜨리기

무한히 많은 것을 두 줄로 증명하는 법

수학적 귀납법 — 도미노 쓰러뜨리기
첫 장을 넘어뜨리고, 넘어지면 다음도 넘어진다를 보이면 전부 넘어집니다.

"1부터 n까지 더하면 n(n+1)/2 이다." 이걸 어떻게 증명할까요? n = 1, 2, 3… 무한히 많은데 하나씩 확인할 수는 없습니다.

도미노를 생각해 보세요. 도미노가 무한히 늘어서 있어도, 딱 두 가지만 확인하면 전부 넘어진다고 말할 수 있습니다.

👆
기초 단계
첫 장이 넘어진다
n = 1 에서 참
➡️
귀납 단계
k가 넘어지면 k+1도 넘어진다
🎉
결론
모든 n에 대해 참

이것이 수학적 귀납법(mathematical induction)입니다. 무한한 확인을 두 줄로 바꾸는 마법이에요.

8개를 확인했습니다. 나머지 무한 개는요?
Python 브라우저에서 실행

🎮 도미노를 직접 세워 보세요

기초 단계를 빼면 어떻게 되는지, 귀납 단계가 끊기면 어떻게 되는지 도미노를 넘어뜨리며 확인해 보세요. 둘 중 하나만 빠져도 전체가 무너집니다.

도미노 실험실 — 두 조건 중 하나를 빼 보세요
불러오는 중…

증명 써 보기

주장 : 모든 자연수 n에 대해 1 + 2 + … + n = n(n+1)/2

[기초] n = 1 일 때, 좌변 = 1, 우변 = 1·2/2 = 1. 참이다.

[귀납 가정] n = k 일 때 참이라고 하자. 즉 1 + 2 + … + k = k(k+1)/2.

[귀납 단계] n = k+1 일 때를 계산한다.
1 + 2 + … + k + (k+1)
  = k(k+1)/2 + (k+1)   (← 귀납 가정을 여기서 쓴다)
  = (k+1)(k + 2)/2
  = (k+1)((k+1)+1)/2
이것은 n = k+1 일 때의 식과 정확히 같다.

[결론] 기초와 귀납 단계가 모두 성립하므로, 모든 자연수 n에 대해 참이다. ∎

핵심은 귀납 가정을 어디서 쓰는가입니다. 그 한 줄이 없으면 증명이 아니에요.

귀납 단계는 '식 정리'가 전부입니다.
Python 브라우저에서 실행

강한 귀납법

때로는 바로 앞 한 장이 아니라 앞의 전부가 필요할 때가 있습니다. "k일 때 참"이 아니라 "1부터 k까지 모두 참"을 가정하는 것을 강한 귀납법(strong induction)이라고 해요.

대표적인 예가 "2 이상의 모든 정수는 소수들의 곱으로 쓸 수 있다"입니다. n이 소수가 아니면 n = a × b 인데, 여기서 a와 b는 n-1이 아니라 n보다 작은 아무 수거든요.

재귀 호출이 곧 '더 작은 경우를 가정한다'입니다.
Python 브라우저에서 실행
🤔 확인 문제
수학적 귀납법에서 기초 단계가 하는 일은?
🤔 확인 문제
귀납 단계에서 하는 일을 바르게 말한 것은?
🤔 확인 문제
"2 이상의 정수는 모두 소수의 곱이다"를 증명할 때 강한 귀납법이 필요한 이유는?