『구체 수학 1장. 재귀적인 문제들』
하노이의 탑
- 문제를 일반화해서 작은 사례들을 살펴보는 것이 유익하다.
- 원반 n개를 뤼카의 규칙하에서 다른 한 기둥으로 옮기는 데 필요한 최소한의 이동 횟수를 Tn이라고 하면 T0=0이고, T1=1, T2=3임이 자명함.
- 크게 생각하는 쪽으로 관점을 바꿔보자:
- 작은 원반 n−1개를 다른 기둥으로 옮긴다. (Tn−1)
- 가장 큰 원반을 다른 기둥으로 옮긴다. (T1=1)
- 다시 작은 원반 n−1개를 가장 큰 원반 위로 옮긴다. (Tn−1)
- 따라서 원반 n개의 이동 횟수는 2Tn−1+1을 넘지 않는다:
Tn≤2Tn−1+1,n>0에 대해.
- 등호가 아니라 부등호가 쓰인 이유는 탑을 옮기는 데 2Tn−1+1번 이동이 충분하다는 것만을 증명했기 때문.
- 그러면 더 적은 수의 이동으로 탑을 옮길 수도 있을까?
- 언젠가는 가장 큰 원반을 옮겨야 하는데, 그러기 위해서는 한 기둥에 n−1개의 작은 원반들이 한 기둥에 쌓여 있어야 한다.
- 작은 원반들을 한 기둥에 쌓기 위해서는 Tn−1번 이동이 불가피하다.
- 큰 원반을 마지막 기둥으로 옮긴 뒤에도 작은 원반들을 옮기려면 필연적으로 Tn−1번 이동이 발생한다.
- 따라서 더 적은 수의 이동으로 탑을 옮길 수 없으며, 다음 식이 성립한다:
TnT0Tn≥2Tn−1+1,n>0에 대해.=0=2Tn−1+1,n>0에 대해. (1.1)
- 이러한 식을 점화식이라고 하며, 경계값(boundary value)와 방정식으로 구성된다.
- 닫힌 형식(closed form): 주어진 수량을 그 수량 자신을 이용하지 않고 표현하는 식. 이걸 구하면 n이 아무리 커도 빠르게 점화식의 해를 구할 수 있다. 작은 사례들을 살펴보자:
T3T4T5T6Tn=2×3+1=2×7+1=2×15+1=2×31+1…=2n−1,n≥0에 대해. (1.2)
- 수학적 귀납법에서 n의 가장 작은 값 n0에 대해 증명하는 것을 기초 단계라고 부른다.
- 명제가 n0에서 n−1까지의 값들에 대해 이미 증명되었다는 가정하에 n>n0에 대해 증명하는 것을 귀납 단계라고 부른다.
- T0=20−1=0이므로 기초 단계는 자명하다.
- 식 (1.2)가 성립한다는 가정하에, 식 (1.1)과 식 (1.2)로부터 다음 등식을 얻을 수 있음:
Tn=2Tn−1+1=2(2n−1−1)+1=2n−1평면의 선들
- 칼로 피자를 n번 직선으로 자를 때 피자 조각이 최대 몇 개나 나올까?
- 즉, 평면에 놓인 n개의 직선으로 정의되는 영역의 최대 개수 Ln이 무엇일까?
- L0=1, L1=2, L2=4임이 자명하다. 그렇다면 Ln=2n일까? 아니다. L3=4+3=7이 가능하다.
- 하나의 새 선은 기존의 선 n−1개와 많아야 n−1개의 서로 다른 점에서 교차한다. 따라서 다음과 같은 점화식을 얻을 수 있다:
L0Ln=1=Ln−1+n,n>0에 대해.
- 닫힌 형식을 구해보자. 1,2,4,7,11,16,...에서는 패턴을 찾기 힘들다. 점화식을 펼치면 점화식을 더 잘 이해할 수 있다:
Ln=Ln−1+n=Ln−2+(n−1)+n=Ln−3+(n−2)+(n−1)+n=L0+1+2+⋯+(n−2)+(n−1)+n=1+Sn,여기서Sn은1+2+3+⋯+(n−1)+n.
- 가우스가 9살 때 생각해낸 방법으로 해를 구할 수 있다. (이미 아르키메데스가 사용하긴 했다.)
2Sn=[1+2+3+⋯+(n−1)+n]+[n+(n−2)+(n−1)+⋯+2+1]=(n+1)+(n+1)+(n+1)+⋯+(n+1)+(n+1)=n(n+1),n≥에 대해.∴Ln=2n(n+1)+1,n≥에 대해.요세푸스 문제
- 유대-로마 전쟁 도중 로마군은 41명의 유대인을 한 동굴에 가뒀다. 이들은 둥글게 둘러 앉아 돌아가며 매번 세번째 사람을 직접 처형하는 식으로 모두 자결하기로 했다. 요세푸스는 자신과 친구가 살아남으려면 원의 어디에 있어야 할지 계산했다.
- 문제를 변형해서 10명의 사람이 있고, 매번 두번째 사람이 죽는다고 하자. 그러면 2,4,6,8,10,3,7,1 순서이므로 5번 사람이 살아남는다. 즉, J(10)=5다.
- 2n명이 있을때 첫 바퀴 후에는 1,3,5,7,…,2n−3,2n−1이 살아남는다. J(2n)=2J(n)−1,n≥1에 대해.이다.
- 사람이 홀수인 경우엔? 3,5,7,9,…,2n−1,2n+1이다. 따라서 J(2n+1)=2J(n)+1,n≥1에 대해.
이 문서를 인용한 문서