Linearism › 이산수학 › DM.6

6강. 수학적 귀납법과 재귀

이산수학 · 2부. 집합, 함수, 귀납

기본 · 약 15분 · 연습문제 7

요약

귀납법의 구조, 합 공식과 부등식의 증명, 강한 귀납법, 재귀적 정의, 정렬 원리

'모든 자연수 n에 대해 ~이다'를 어떻게 증명할까요? 예를 몇 개 확인해서는 끝까지 증명할 수 없습니다. 수학적 귀납법은 첫 경우와 '한 경우에서 다음 경우로 넘어가는 규칙'만 보이면 무한히 많은 경우를 한꺼번에 증명하는 방법입니다. 고등학교에서 본 귀납법을 강한 귀납법과 재귀적 정의까지 넓힙니다.

자연수 전체에 대한 명제 ∀n P(n)\forall n\, P(n)은 반례를 하나씩 확인해서는 끝까지 증명할 수 없습니다(3강의 n2+n+41n^2 + n + 41 예). 수학적 귀납법은 무한히 많은 경우를 두 단계로 끝내는 방법입니다.

6.1 귀납법

정리 6.1 (수학적 귀납법). 자연수에 대한 명제 P(n)P(n)에 대해

  1. (기초 단계) P(n0)P(n_0)이 참이고
  2. (귀납 단계) 모든 k≥n0k \ge n_0에 대해 P(k)→P(k+1)P(k) \to P(k+1)이 참이면

n≥n0n \ge n_0인 모든 nn에 대해 P(n)P(n)이 참입니다.

도미노에 비유합니다: 첫 도미노가 넘어지고, 어느 도미노든 넘어지면 다음 것을 넘어뜨린다면, 모두 넘어집니다. 귀납 단계에서 가정하는 P(k)P(k)를 귀납 가정(induction hypothesis)이라 합니다. 귀납 가정은 “모든 kk에서 P(k)P(k)가 참”이라는 뜻이 아니라, 임의의 하나의 kk에서 참이라고 놓고 P(k+1)P(k+1)을 끌어내는 것입니다.

6.2 합 공식

정리 6.2. 모든 n≥1n \ge 1에 대해 1+2+⋯+n=n(n+1)21 + 2 + \cdots + n = \dfrac{n(n+1)}{2}.

증명. 기초: n=1n = 1이면 양변이 1입니다. 귀납: 1+⋯+k=k(k+1)/21 + \cdots + k = k(k+1)/2라 가정하면

1+⋯+k+(k+1)=k(k+1)2+(k+1)=(k+1)(k+2)21 + \cdots + k + (k+1) = \frac{k(k+1)}{2} + (k+1) = \frac{(k+1)(k+2)}{2}

이므로 P(k+1)P(k+1)이 참입니다. □

정리 6.3. 12+22+⋯+n2=n(n+1)(2n+1)61^2 + 2^2 + \cdots + n^2 = \dfrac{n(n+1)(2n+1)}{6}.

증명. 기초 n=1n = 1: 1=1⋅2⋅3/61 = 1 \cdot 2 \cdot 3/6. 귀납: 가정에 (k+1)2(k+1)^2을 더하면 k(k+1)(2k+1)6+(k+1)2=(k+1)(2k2+7k+6)6=(k+1)(k+2)(2k+3)6\frac{k(k+1)(2k+1)}{6} + (k+1)^2 = \frac{(k+1)(2k^2 + 7k + 6)}{6} = \frac{(k+1)(k+2)(2k+3)}{6}입니다. □

정리 6.4 (등비수열의 합). r≠1r \ne 1이면 1+r+⋯+rn=rn+1−1r−11 + r + \cdots + r^n = \dfrac{r^{n+1} - 1}{r - 1}.

6.3 부등식과 나누어떨어짐

정리 6.5. n≥4n \ge 4이면 2n<n!2^n < n!.

증명. 기초 n=4n = 4: 16<2416 < 24. 귀납: 2k<k!2^k < k!이면 2k+1=2⋅2k<2⋅k!<(k+1)⋅k!=(k+1)!2^{k+1} = 2 \cdot 2^k < 2 \cdot k! < (k+1) \cdot k! = (k+1)!입니다(k≥4k \ge 4이므로 2<k+12 < k+1). □

기초 단계가 n0=4n_0 = 4인 것에 주의합니다. n=1,2,3n = 1, 2, 3에서는 부등식이 거짓입니다.

정리 6.6. 모든 n≥0n \ge 0에 대해 3∣n3+2n3 \mid n^3 + 2n.

증명. 기초: 00. 귀납: (k+1)3+2(k+1)=(k3+2k)+3(k2+k+1)(k+1)^3 + 2(k+1) = (k^3 + 2k) + 3(k^2 + k + 1)이고, 첫 항은 귀납 가정으로 3의 배수, 둘째 항도 3의 배수입니다. □

6.4 강한 귀납법

귀납 단계에서 P(k)P(k) 하나만이 아니라 P(n0),…,P(k)P(n_0), \dots, P(k)를 모두 가정해도 됩니다.

정리 6.7 (강한 귀납법). P(n0)P(n_0)이 참이고, 모든 k≥n0k \ge n_0에 대해 “P(n0)∧⋯∧P(k)P(n_0) \land \cdots \land P(k)이면 P(k+1)P(k+1)”이면, n≥n0n \ge n_0인 모든 nn에서 P(n)P(n)이 참입니다.

정리 6.8. 2 이상의 모든 정수는 소수들의 곱으로 쓸 수 있습니다.

증명. n=2n = 2는 소수입니다. 2,…,k2, \dots, k가 모두 소수의 곱이라 가정합시다. k+1k+1이 소수이면 끝입니다. 아니면 k+1=abk + 1 = ab(2≤a,b≤k2 \le a, b \le k)이고, 귀납 가정으로 aa와 bb가 소수의 곱이므로 k+1k+1도 그렇습니다. □

여기서는 k+1k+1의 약수 aa, bb가 kk보다 훨씬 작을 수 있으므로 P(k)P(k) 하나로는 부족합니다.

6.5 재귀적 정의

수열이나 집합을 “처음 것”과 “앞의 것에서 다음 것을 만드는 규칙”으로 정의하는 것을 재귀적 정의(recursive definition)라 합니다.

정의 6.9 (피보나치 수). F0=0F_0 = 0, F1=1F_1 = 1, Fn=Fn−1+Fn−2F_n = F_{n-1} + F_{n-2} (n≥2n \ge 2).

처음 몇 항은 0,1,1,2,3,5,8,13,21,34,…0, 1, 1, 2, 3, 5, 8, 13, 21, 34, \dots입니다. 재귀로 정의한 대상의 성질은 자연스럽게 귀납법으로 증명합니다.

정리 6.10. F1+F2+⋯+Fn=Fn+2−1F_1 + F_2 + \cdots + F_n = F_{n+2} - 1.

증명. 기초 n=1n = 1: 1=F3−1=2−11 = F_3 - 1 = 2 - 1. 귀납: 가정에 Fk+1F_{k+1}을 더하면 Fk+2−1+Fk+1=Fk+3−1F_{k+2} - 1 + F_{k+1} = F_{k+3} - 1입니다. □

정리 6.11. Fn<2nF_n < 2^n (n≥0n \ge 0).

증명. 강한 귀납법: F0=0<1F_0 = 0 < 1, F1=1<2F_1 = 1 < 2. n≥2n \ge 2에서 Fn=Fn−1+Fn−2<2n−1+2n−2<2nF_n = F_{n-1} + F_{n-2} < 2^{n-1} + 2^{n-2} < 2^n. □

닫힌 꼴 Fn=φn−ψn5F_n = \frac{\varphi^n - \psi^n}{\sqrt{5}}(φ=1+52\varphi = \frac{1 + \sqrt{5}}{2}, ψ=1−52\psi = \frac{1 - \sqrt{5}}{2})은 9강에서 점화식을 풀어 구합니다.

6.6 정렬 원리

정리 6.12 (정렬 원리). 공집합이 아닌 자연수의 집합에는 가장 작은 원소가 있습니다.

정렬 원리는 귀납법과 동치이고, “가장 작은 반례”를 잡아 모순을 끌어내는 증명에 씁니다. 예를 들어 정리 6.8은 “소수의 곱으로 쓸 수 없는 가장 작은 수 mm”을 잡으면, mm이 소수가 아니므로 m=abm = ab이고 a,b<ma, b < m은 소수의 곱이 되어 모순이라고 증명할 수도 있습니다.

쓰이는 곳. 알고리즘의 정확성 증명(반복문 불변식), 재귀 함수의 분석, 재귀 신경망의 정의, 프로그래밍 언어의 재귀적 자료구조가 귀납법과 재귀를 씁니다.

6.7 이 장의 요약

  • 귀납법 = 기초 단계 + 귀납 단계. 기초 단계의 시작값을 확인합니다.
  • 뒤의 경우가 훨씬 앞의 경우에 기대면 강한 귀납법을 씁니다.
  • 재귀로 정의한 대상은 귀납법으로 다룹니다.

문제

6.1 [계산] · 확인 문제

1+2+⋯+1001 + 2 + \cdots + 100은?

정답
5050
풀이

정리 6.2로 100⋅101/2=5050100 \cdot 101 / 2 = 5050입니다.

6.2 [계산] · 확인 문제

12+22+⋯+2021^2 + 2^2 + \cdots + 20^2은?

정답
2870
풀이

정리 6.3으로 20⋅21⋅41/6=287020 \cdot 21 \cdot 41 / 6 = 2870입니다.

6.3 [계산] · 확인 문제

2n<n!2^n < n!이 성립하는 가장 작은 양의 정수 nn은?

정답
4
풀이

n=1,2,3n = 1, 2, 3에서 2>12 > 1, 4>24 > 2, 8>68 > 6이고 n=4n = 4에서 16<2416 < 24입니다. 정리 6.5에 따라 그 뒤로는 계속 성립합니다.

6.4 [계산]

피보나치 수를 씁니다.

nn FnF_n
10 [?]
15 [?]
20 [?]
정답
55
610
6765
풀이

F10=55F_{10} = 55, F15=610F_{15} = 610, F20=6765F_{20} = 6765입니다.

6.5 [계산]

정리 6.10을 써서 F1+F2+⋯+F10F_1 + F_2 + \cdots + F_{10}을 구합니다.

정답
143
풀이

F12−1=144−1=143F_{12} - 1 = 144 - 1 = 143입니다.

6.6 [증명]

모든 n≥1n \ge 1에 대해 1+3+5+⋯+(2n−1)=n21 + 3 + 5 + \cdots + (2n - 1) = n^2임을 귀납법으로 보입니다.

풀이

기초 n=1n = 1: 1=121 = 1^2. 귀납: 1+3+⋯+(2k−1)=k21 + 3 + \cdots + (2k-1) = k^2이라 가정하면 다음 항 2(k+1)−1=2k+12(k+1) - 1 = 2k + 1을 더해 k2+2k+1=(k+1)2k^2 + 2k + 1 = (k+1)^2입니다.

6.7 [증명]

4원과 5원 동전만으로 12원 이상의 모든 금액을 낼 수 있음을 강한 귀납법으로 보입니다.

힌트 1

기초 단계를 12, 13, 14, 15원 네 개로 잡으면, n≥16n \ge 16은 n−4n - 4에 4원 하나를 더하면 됩니다.

풀이

기초: 12=4+4+412 = 4 + 4 + 4, 13=4+4+513 = 4 + 4 + 5, 14=4+5+514 = 4 + 5 + 5, 15=5+5+515 = 5 + 5 + 5. 귀납: n≥16n \ge 16이고 12,…,n−112, \dots, n-1을 모두 낼 수 있다고 가정합니다. n−4≥12n - 4 \ge 12이므로 n−4n - 4원을 낼 수 있고, 4원 동전 하나를 더하면 nn원입니다.