石とりゲーム

石の山がいくつかあります。順番に1つの山から好きな数だけ取り、最後の石を取った人の勝ちです。コンピューターと対戦して、必ず勝てる局面の見つけ方を探りましょう。

あなたの番です。 石をタップして取る数を選んでください。

山1
山2
山3

遊び方

取りたい山の石をタップします。タップした石から上が、すべて選ばれます。そのあと「とる」を押します。1回に取れるのは1つの山からだけで、1個以上です。最後の石を取った人の勝ちです。「ヒント」は、考え方、2進数(0と1だけで書いた数)の表、具体的な一手の順に出ます。「自動で解く」は、いまの盤面からコンピューターが必勝法で指して、理由も言います。

もっと知る

山の石の数を2進数で書き、桁ごとに1の数を数えます。どの桁も偶数なら、次に取る人は負けの局面です(この「どの桁も偶数」は、XOR という計算で0になることと同じです)。どう取っても、どれかの桁が奇数になります。奇数の桁があれば、1つの山を減らして全部の桁を偶数にもどせます。だから「偶数にそろえた局面を相手に渡し続ける」と、最後の石は自分が取れます。この作品では、4つまでの山・各6個までのすべての局面を全探索して、「XOR が0の局面だけが負け」であることをテストで確かめています。

読みもので詳しく: 数のおもちゃ箱 →