ニム

ニム (nim) は、2人で行うレクリエーション数学ゲームの一つである。ルーツは古代中国からあるとされ、16世紀初めの西欧で基本ルールが完成したが、名前については、一般的に1901年にハーバード大学のチャールズ・L・バウトンによって名付けられたとされる。

このゲームの必勝法は、組合せ論による。組合せ論的には先手と後手どちらが勝つか、勝ちが保証されるためにはどのようにコインを取ればよいか、その勝利の戦略を決めることにある。

ゲームのルール 
2人のプレイヤーがいくつかのコインの山からコインを取り合う。ゲームの目的は、最後のコインを取ることである（コインの代わりに石や豆を使ってもよい）。
 まず、コインの山を複数準備する。山の数や各山のコインの枚数は（プレイヤー同士で合意すれば）自由に決めてよい。
 2人のプレイヤーの順番は交互である。じゃんけん等で先手を決める。
 各々のプレイヤーは自分の順番のとき、コインの山を1つ選んでその山から1枚以上のコインを取り去る（複数の山からコインを取ったり、コインを一枚も取らなかったりするのは反則である）。これが終わったら次のプレイヤーの手番になる。
 すべての山のコインがなくなったとき、ゲームは終わりである。そして、最後のコイン（複数のときもある）を取ったときのプレイヤーが勝者である。

必勝法

山が二つの場合 
特殊な場合として、2つのコインの山AとBでそれぞれの山のコインの数をa枚、b枚とする。このときの必勝法を考える。まずAとBの山のコインの数が異なるときを考える。先手は、AとBの山のコインの数が同じになるように、コインの数の多い方の山からコインを取る。そのあと、先手は自分の順番のとき、後手の取るのを真似ればよい。つまり、後手が片方の山からc枚コインを取ったとしたら、先手はもう一方の山から、同じ数のc枚だけコインを取ればよい。これが先手の必勝法である。

もしAとBの山の数が同じならば、先手の取るのを真似ることで後手が勝つことになる。

一般の場合 
コインの山の数を  とし、各山のコインの枚数を  とする。

 とおき、 ならば先手が必勝法を持ち、 ならば後手が必勝法を持つ。 はビットごとの排他的論理和である。

ビットごとの排他的論理和が 0 になるようにコインを取る戦略が必勝法である。

証明 
先手がコインを取り除いた後の各山のコインの枚数を  とし、 とする。コインが  番目の山から取り除かれるとき、 である。排他的論理和は結合法則と交換法則および  をみたすため、次の等式が成り立つ。

次の二つの補題から従う。

補題1:  のとき、任意の操作について  である。

証明:  であることから明らかである。

補題2:  のとき、ある操作について  である。

証明:  の 0 でないビットのうち最も桁の大きいものの位置を  番目とする。
 の  番目のビットが 0 でないような  を一つ選ぶ（このような  は必ず存在する）。
 であるため、 番目の山から何枚かのコインを取り除いて  枚にすることができる。
このとき、 となる。

双対ゲーム 
ニムの勝ち負けを反転させたゲームを、ニムの双対ゲームと呼ぶ。すなわち、双対ゲームはニムと同じルールでゲームが展開していくが、通常のニムと違い最後のコインを取った方が負けになる。

双対ゲームの必勝法はニムの必勝法を反転させたものになっていない。

関連項目 
 ニム和
 映画『去年マリエンバートで』 - 作中でニムが重要な役割を担う

外部リンク 
 

組合せゲーム理論
数学ゲーム
ゲーム

cs:Rozšířená forma#NIM