필승조와 패전 처리조.

이 전략이 정말로 필승 전략이라는 것을 어떻게 증명하는지 얼개만 보자. 돌멩이의 수가 N개이고, 집을 수 있는 돌의 개수가 M개 이하일 때 순서쌍 (N,M)으로 나타내기로 하자. 예를 들어 돌 12개로 시작했다면 순서쌍 (12,11)로 쓸 수 있고, 갑이 그 중 두 개를 집었다면 을은 (10,4)를 건네 받게 된다. 다시 을이 3개를 집었다면 갑은 (7,6)을 건네 받는 셈이다. 따라서 어떤 순서쌍을 넘겨 받아야, 최선을 다할 경우 항상 이기냐는 문제로 표현할 수 있다.
이제 주어진 순서쌍 (N,M)이 ‘필승조’라는 것은 M이 Z(N) 이상일 때를 말하고, ‘패전 처리조’는 반대의 경우를 가리키기로 하자. 이때 다음 두 가지 사실을 증명하면 바라던 증명이 완성된다. (왜일까?)
1. (N,M)이 필승조인 경우, Z(N)개의 돌을 집으면 (N-Z(N),2Z(N))은 항상 패전 처리조다. 2. (N,M)이 패전 처리조인 경우, K개의 돌을 집은 (N-K,2K)는 항상 필승조다. 물론 K는 1이상 M이하의 수여야 한다.
예를 들어 30개의 돌로 시작했다고 하자. 즉 (30,29)로 시작한 상황이다. 30=21+8+1이므로 Z(30)=1이다. M=29가 Z(30)=1 이상이므로 필승조다. 이때 1개를 집으면 상대방은 (29,2)를 넘겨 받는데, 이는 항상 패전 처리조라는 뜻이다. 실제로 Z(29)=8이 2보다 크다는 것을 확인할 수 있다.
한편 순서쌍 (29,2)를 넘겨 받은 사람은 아무리 발버둥을 쳐도 상대방에게 필승조를 넘겨 준다. 즉, 1개를 집은 (28,2)나, 2개를 집은 (27,4) 모두 필승조다. 28=21+5+2이므로 Z(28)=2이고, 27=21+5+1에서 Z(27)=1이므로 사실임을 확인할 수 있다.
첫 번째 사실의 증명은 대단히 쉬운데, 피보나치 수의 다음다음 항이 원래 수의 2배보다 크기 때문이다. 제켄도르프의 정리를 잘 이용하면, 두 번째 사실의 증명은 다음 도움정리의 증명으로 귀결된다.
피보나치 수 F와 그보다 작은 K에 대해, Z(F-K)는 항상 2K보다 작거나 같다
예를 들어 F에 대한 수학적 귀납법 등을 이용하면 어렵지 않게 증명할 수 있다. |