概要
先日,私の通う学校の期末テストで,次のような問題が出されました.
一部表現を変更
先手と後手が,次のようなゲームを行う.
・を以上の整数とする.はじめに個の石がある.
・まず先手は個以下の好きな数の石を取る.
・以降は,直前に相手が取った石の数の倍以下の好きな数の石を取ることを繰り返す.
・最後の石を取った方が勝ちとなる.
(1) のとき,先手と後手のどちらに必勝法があるか.
(2) のとき,先手と後手のどちらに必勝法があるか.
しらみつぶしに書き出していけば,のとき後手必勝.のとき先手必勝であることは分かるでしょう.一般にがどのような条件を満たせば先手必勝となるのかがやはり気になるところです.そこでまで順番に試していったところ,次の興味深い事実に気づきました.
がフィボナッチ数のとき後手必勝.フィボナッチ数でない時先手必勝となる
さらに,このゲームの必勝法は,次のように表現できる事にも気がつきました
必勝法
から始めて,「それ以下の最大のフィボナッチ数を引いていく」という操作を繰り返すことで,をフィボナッチ数の和として表す.
たとえばなら,なら
このとき最後に現れるフィボナッチ数をと表すとする.
(上の例なら,)
「個の石があれば個の石を取る」がこのゲームの必勝法になる.
これらについて興味深い証明を考えついたので,紹介します.
証明
番目のフィボナッチ数をで表すとする.
準備として,正の整数に対して,有限数列およびを次のように定義する.
とし,以下の最大のフィボナッチ数を(ただし),
とする.となったら終了で,このときのの値をで表す.また,とする.すなわちこのは,以下のようにを異なるフィボナッチ数の和で表現する方法の一つに対応する.
次に,数列およびについて,次の2つの補題を用意する.
であるようなが存在すると仮定する.
定義より明らかにである.より,
であるから,でなければならない.
であり,より,
であるから,となる.しかしこれはがを超えない最大のフィボナッチ数であることに矛盾.よって示された.
を正の整数とし,をを満たす整数とする.
が成立する.
以下の最大のフィボナッチ数をとする.すなわちが成り立つ.
のとき,
よりであるから,
より成立.
のときも同様に,
より成立.
次に,任意のに対して,が成り立つことを示す.を超えない最大のフィボナッチ数はである.なぜなら,であり,だからである.
よって,とすると,である.
また,に対する数列と,に対する数列が一致することから,
が成立するので,は成立する.
から,数学的帰納法により,任意のに対しが成立する事がわかる.よって補題は示された.
次に, がフィボナッチ数でないとき,先手必勝であることを証明する.
はじめに置かれていた石の個数をとし,両者合わせてがi回操作を行ったあとの石の個数をで表すとする.また,とする.
先手が次の操作に従ってゲームを行ったとする.
がフィボナッチ数でないとき,次の2つの命題が成立することを数学的帰納法で示す.
- 先手はゲームが終了するまでこの操作を継続できる.
- 各段階において後手がすべての石を取れることはない.つまり先手必勝である.
- のとき
まず,はフィボナッチ数ではないのでであり,先手は操作を行える. - のとき成立すると仮定して,のとき
とすれば
である.
のときはより先手が勝つから,の時を考える.
ここで後手がとった石の個数をとする.である必要がある.
補題1よりなので,であるから,
後手はすべての石を取ることはできない.また,このとき
で,補題2からなので先手は操作を行える.
以上より,がフィボナッチ数でないときは先手必勝である.
次に, がフィボナッチ数でないとき,後手必勝であることを証明する.
とする.先手が個の石をとったとき,すなわちであれば,後手はすべての石を取る事ができるので勝てる.の時を考える.
がフィボナッチ数でないとき,補題2より,なので,後手はの石を取り除くことで先手必勝の場合に帰着する.
また,であって,がフィボナッチ数となるものは存在しない.このことを証明する.がフィボナッチ数であると仮定して,とおく.このとき,
となる.しかし,より,となって,に矛盾する.
よってがフィボナッチ数であるとき,後手必勝である.
おまけ
証明でははじめに,「最大のフィボナッチ数を引いていく」操作によって自然数をフィボナッチ数の和として表現することを考えました.
これに関連して,「ゼッケンドルフの定理」という次の興味深い事実が知られています.
ゼッケンドルフの定理
任意の正の整数は,連続しないフィボナッチ数の和として一意に表すことができる
このような表現は「ゼッケンドルフ表現」と呼ばれています.補題1で示したように,最大のフィボナッチ数を引いていくことで得られる数列には連続するフィボナッチ数が現れなません.つまりこれはゼッケンドルフ表現となっています.
連続しないフィボナッチ数の和で表す方法がこれ以外に存在しないというのが驚きですね.