2007年10月16日(火)
ネタがないので敬愛するマーチンガードナー先生の数学ゲームに載ってたやつを紹介。
ニムというのゲームの一種で、いろいろな亜種がありますが、だいたいこんなもんです。
通常二人で行います。
1)チップをいくつかの山にして積んでおく
2)その山から「あるやり方」でチップを取っていく
3)最後のチップを取ったら勝ち(あるいは負け)
「あるやり方」というのがいろいろあるのですが、「1つ山を選んでそこから好きな数だけいくらでもとれる」というのが一番オーソドックスです。
チップを用意できなくても、たとえば財布の中から小銭をばらまいて、同じコインを同時に何枚とってもいい。最後の1枚をとったら勝ち。見たいな感じにすればよいでしょう。
実は、このゲームには必勝法があります。
このルールを知ってれば、相手が間違った手を打てば、必ず勝てます。(必勝法を知らないとまず間違った手をうつ)
その計算方法は美しいんだけれども、ぱっと見た感じ、わかりにくいので、相手はムキになってきますよ。是非試してみてください。
まずは簡単な例から
山が1つしかなければ、先手が絶対勝ちます。(全部とっちゃえばいい)
山が2つの場合は1つのときほど簡単じゃないけど、ちょっと考えると、常に両方の山の高さが同じになるように高い方からチップを取ればよいことがわかります。そうすれば、相手はいつかは手詰まりになり、最後のチップをいつかは取ることができます。
故に面白いのは3つ以上ということになります。
簡単な例を。
もし山を1,2,4ならば4の山から1つとって、1,2,3にすれば必ず勝ちます。
1)相手が1の山をとってしまえば、3の山から1つとり、2,2として勝ち確定
2)相手が2の山から1つとれば、3の山を全部取って、1,1として勝ち確定
3)相手が2の山を全部とってしまえば、3の山から2つとって、1,1として勝ち確定
相手が3の山からとった場合も同様に考えれば、必ず必勝形に持ち込めます。
こんな感じで、この形に持ち込めば勝てるという形は遊んでいくうちに自然とわかってくるとおもいます。
ただ、これが完全な必勝法となると難しい。これを自力で思いつく人はあまりいないんじゃないかな~。おそらくかなり数学の才能がある人かと。
で、結論から言うと、以下のようになります。
各山の数の排他的論理輪が0になるように山を崩していけばよい。そうすれば相手は手詰まりになり、勝てる。
面白いことに二進数と排他的論理和が中心的な役割を果たします。こんなところで排他的論理和が出てくるとは実に興味深い。
この意味がわからない人は以下のように考えてください。
各山の数を1,2,4,8,16、・・の組み合わせの和であらわし、1,2,4,8,16、・・の数を数え、偶数になるように山を崩す。
これで勝てます。
ポイントとして、1,2,4,8,16、・・の各数を2つ以上使わないこと。すなわち0個か1個。
たとえば
7=1+2+4
9=1+8
100=64+32+4
必ずこのようにあらわせます。
ニムというのゲームの一種で、いろいろな亜種がありますが、だいたいこんなもんです。
通常二人で行います。
1)チップをいくつかの山にして積んでおく
2)その山から「あるやり方」でチップを取っていく
3)最後のチップを取ったら勝ち(あるいは負け)
「あるやり方」というのがいろいろあるのですが、「1つ山を選んでそこから好きな数だけいくらでもとれる」というのが一番オーソドックスです。
チップを用意できなくても、たとえば財布の中から小銭をばらまいて、同じコインを同時に何枚とってもいい。最後の1枚をとったら勝ち。見たいな感じにすればよいでしょう。
実は、このゲームには必勝法があります。
このルールを知ってれば、相手が間違った手を打てば、必ず勝てます。(必勝法を知らないとまず間違った手をうつ)
その計算方法は美しいんだけれども、ぱっと見た感じ、わかりにくいので、相手はムキになってきますよ。是非試してみてください。
まずは簡単な例から
山が1つしかなければ、先手が絶対勝ちます。(全部とっちゃえばいい)
山が2つの場合は1つのときほど簡単じゃないけど、ちょっと考えると、常に両方の山の高さが同じになるように高い方からチップを取ればよいことがわかります。そうすれば、相手はいつかは手詰まりになり、最後のチップをいつかは取ることができます。
故に面白いのは3つ以上ということになります。
簡単な例を。
もし山を1,2,4ならば4の山から1つとって、1,2,3にすれば必ず勝ちます。
1)相手が1の山をとってしまえば、3の山から1つとり、2,2として勝ち確定
2)相手が2の山から1つとれば、3の山を全部取って、1,1として勝ち確定
3)相手が2の山を全部とってしまえば、3の山から2つとって、1,1として勝ち確定
相手が3の山からとった場合も同様に考えれば、必ず必勝形に持ち込めます。
こんな感じで、この形に持ち込めば勝てるという形は遊んでいくうちに自然とわかってくるとおもいます。
ただ、これが完全な必勝法となると難しい。これを自力で思いつく人はあまりいないんじゃないかな~。おそらくかなり数学の才能がある人かと。
で、結論から言うと、以下のようになります。
各山の数の排他的論理輪が0になるように山を崩していけばよい。そうすれば相手は手詰まりになり、勝てる。
面白いことに二進数と排他的論理和が中心的な役割を果たします。こんなところで排他的論理和が出てくるとは実に興味深い。
この意味がわからない人は以下のように考えてください。
各山の数を1,2,4,8,16、・・の組み合わせの和であらわし、1,2,4,8,16、・・の数を数え、偶数になるように山を崩す。
これで勝てます。
ポイントとして、1,2,4,8,16、・・の各数を2つ以上使わないこと。すなわち0個か1個。
たとえば
7=1+2+4
9=1+8
100=64+32+4
必ずこのようにあらわせます。
実際のゲームにおける例を示しましょう。
今、山が3つで 1、4、7とします。
この場合
1
4
1+2+4
ですから、1,4の個数は偶数で2の個数が奇数です。故に3つ目の山から2個とり、1,4,5とすれば全ての数が偶数になります。
この後、
1)相手が1の山を取ってしまえば、5の山から1つとり、4,4として勝利が確定。
2)相手が4の山から1つまたは1つとれば、1,2,3に持ち込めるから勝ち確定。
3)相手が4の山から3つまたは全部とれば1,1に持ち込めるから勝ち確定。
相手が5の山から取った場合も同様に必勝形に持ち込むことができます。
なぜこのやり方で勝てるのか証明しようと以前おもったけど、一箇所どうしてもうまく証明できませんでした。そこがなんだったかもよく覚えてませんが、とりあえずこれで勝てます。お試しアレ。
関連
今、山が3つで 1、4、7とします。
この場合
1
4
1+2+4
ですから、1,4の個数は偶数で2の個数が奇数です。故に3つ目の山から2個とり、1,4,5とすれば全ての数が偶数になります。
この後、
1)相手が1の山を取ってしまえば、5の山から1つとり、4,4として勝利が確定。
2)相手が4の山から1つまたは1つとれば、1,2,3に持ち込めるから勝ち確定。
3)相手が4の山から3つまたは全部とれば1,1に持ち込めるから勝ち確定。
相手が5の山から取った場合も同様に必勝形に持ち込むことができます。
なぜこのやり方で勝てるのか証明しようと以前おもったけど、一箇所どうしてもうまく証明できませんでした。そこがなんだったかもよく覚えてませんが、とりあえずこれで勝てます。お試しアレ。

コメント一覧
しかーし!1つだけ完璧に解ったことがあります。それは・・・・
この手の勝負でいっせいさんに挑んではいけない、ということです(笑
Commented by ゴンゾー at 2007-10-19 05:09:23
Commented by kaz at 2007-10-19 10:29:38