いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

ニムというゲームの必勝法

 ニムというゲームがあります。コインの山をいくつか用意します。山はいくつ作ってもよいですし、それぞれの山のコインは何枚でもOKです。山ごとに違う枚数にしても大丈夫。プレーヤーは交互に好きな山から好きな枚数だけコインを取ります(ひと山全部取ってもよい)。ただしこのとき、1回に相手にする山はひとつだけです。つまり複数の山からコインを取ってはいけません。また、最低でも1枚は取らなければなりません。そして、最後のコインを取ったプレーヤーが勝ちです。

 必勝法があるそうです。ウィキペディアなどを見ると結構難しそうな書き方をしています。

ニム - Wikipedia

分かりやすく翻訳すると次の通りです。

例えば山は3つ、それぞれが3枚、5枚、7枚だったとしましょう。3=2+1、5=4+1、7=4+2+1です。これは3,5,7をそれぞれ2進数で表していることになります。早い話、山のコインの枚数を2の累乗、つまり1,2,4,8,16,……たちの総和で表すのです。ただし、表すときには1回使った数は使えません。例えば5=2+2+1というのはダメです。2+2を使う代わりに4を使えるからです(2進数なので、できるだけ大きな2の累乗を使うのです)。別の山を和で表すときには先の例のように、例えば「2」があっちにもこっちにも顔を出す、ならよろしい。

 さて、必勝法です。相手に渡すときは、全ての山で使われている2の累乗たちが、どれも偶数個になるようにするのです。さっきの例では、最初の状態では4が2個、2が2個、1が3個使われています。こちらはどこかから1枚だけ取ればOK。これで4が2個、2が2個、1が2個になるからです(どの2の累乗も偶数個ずつになる)。(2,1)(4,1)(4,2,1)が最初の状態です。例えば最初の山から1枚取ればよいですね。これで(2)(4,1)(4,2,1)になりました。今度は相手の手番です。相手は2番目の山から2枚取ったとしましょう。(2)(2,1)(4,2,1)になりました。今、4は1個、2は3個、1は2個使われています。こちらは3番目の山から6枚取りましょう。(2)(2,1)(1)になり、2が偶数個、1も偶数個だから必勝法の教えに従っています。以下、例えばここで相手が第1の山から2枚取ったとすると(2,1)(1)。こちらは第1の山から2枚取ります。(1)(1)になります。相手はどちらから1枚取るしかありません。最後の1枚はこちらのものです!

 今回はうまくいきましたが、心配なのは2の累乗をどれも偶数個ずつにして相手に手番を渡したとき、どういう手を打たれてもまた2の累乗をどれも偶数個ずつにして相手に渡せるのか、ということです。できるらしいです……。もちろん要証明です。そのうちやってみましょう!!