◆愛知県 Y.M.Ojisan さんからの解答
【全般】
取った石の状態と残りの石の数で必勝:〇か、必敗:×かの状態を示すと下図が得られ周期6を持つ。
従って、相手が偶数個取っているときは残りの石数≡1(mod 6) 、
奇数個の時は残りの石数≡0 or 5(mod 6)とできれば必勝である。
| 残り石の数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 取った石が偶数 | ○ | × | ○ | ○ | ○ | ○ | ○ | × | ○ | ○ | ○ | ○ | ○ | × | ○ | ○ | ○ | ○ | ○ | × | ○ | ○ | ○ | ○ | ○ | × | ○ | ○ |
| 取った石が奇数 | × | ○ | ○ | ○ | ○ | × | × | ○ | ○ | ○ | ○ | × | × | ○ | ○ | ○ | ○ | × | × | ○ | ○ | ○ | ○ | × | × | ○ | ○ | ○ |
【問題1】
偶数後手必勝である。4個とればよい。
【問題2】
必勝である。
相手が奇数個なら3個とり、残り5個で相手は問題1より負けである。
相手が偶数なら1個取って7個残して返す。
【問題3】
先手有利。初手は2個とりのみ。
【問題4】
相手が奇数個の場合、必勝打ち手は上図より2種ある場合がある。
コンピュータはより多く取る方を選択している。
If 相手は偶数 then
取る数=max(1 , min(4 , (残り石数-1) mod 6))
Else
取る数=max(1 , min(4 , (残り石数+1) mod 6 , 残り石数))
End if
【問題5】
相手が奇数個の場合で2種あるときに、より少なくとる方法や乱数で何れかを取る方法がある。
次は少なく取る方。
If 相手は偶数 then
取る数=max(1 , min(4 , (残り石数-1) mod 6))
Else
取る数=max(1 , min(4 , 残り石数 mod 6))
End if ◆東京都 明 さんからの解答
【問題1】
後手有利です。
後手が最大の4個を取ることにより、後手の持ち石は偶数となります。
残りの碁石は1個で、これを先手が取らねばならず、ゲーム終了です。
最初の碁石の数が奇数であることから、先手の持ち石は奇数。
したがって後手勝ちです。
【問題2】
後手有利です。
まず、碁石の残り(残石数)が2個以上4個以下のとき、手番の人が有利であることを説明します。
残石数が2個以上4個以下のとき、手番の人は碁石を全部とるか、1個残すかを選択することにより、持ち石の偶奇によらず、最終の持ち石を偶数にすることができます。
全部取った場合はそこでゲーム終了。
1個残した場合は相手がその1個を取ってゲーム終了です。
以上いずれにしても、手番だった人はゲーム終了時に偶数個の持ち石となり、勝ちになります。
以下、言葉に紛れがないように、主役、敵役の2人が対戦するとして議論をします。
ゲーム終了局面から順に、残石数ごとに、主役、敵役のそれぞれの手番について、主役有利の場合の、(主役の)持ち石の偶奇を決めて行くことにします。
碁石数が4個以下の場合、上の説明により、以下のとおりとなります。
残石数:12345678 敵役番:偶××× 主役番:奇○○○ここで「偶」「奇」はそれぞれ、その時点で主役が偶数個および奇数個の碁石を持っている場合のみ主役有利であることを示します。
5個残っている時の敵役番に着目します。
敵役が3個以下の石を取る場合、主役番の「○」に当たるので主役有利。
4個取る場合は主役番が奇数のとき主役勝ちとなるため、奇数で主役有利となります。
この時、敵役の持ち石は残石数が奇数のため奇数。
したがって5個残っている時の主役番は逆の偶数で有利となります。
以下、主役有利の場合を確認するために、求めようとする敵役番の前の4つの残石数について主役番有利の場合の持ち石の偶奇を確認します。
偶奇共にあるときは「×」(敵役有利)となります。
偶数または「○」のみあるときは「偶」(偶数のみ主役有利)となります。
奇数または「○」のみあるときは「奇」(奇数のみ主役有利)となります。
(偶、奇は主役の持ち石の数です。)
以上を決定すると、対応する主役番の有利の場合を求めることができます。
主役番は敵役番の立場を逆にしたものなので、
敵役番「×」のとき主役番「○」
敵役番が「偶」または「奇」のとき、残石数の偶奇により、残石数が偶数のとき、同一、残石数が奇数のとき偶奇が逆になります。
以上の手順で、順に主役有利の場合を求めると次のようになります。
残石数:12345678 敵役番:偶×××奇偶偶× 主役番:奇○○○偶偶奇○残石数が8個の場合、主役が残石数の偶奇によらず有利ですので、手番の後手が有利ということになります。
上の表に基づき主役有利となるように取る石の数を調整して行けば、勝ちとなります。
ちなみに、初手は手番の後手の持ち石が偶数個の場合は、2個を取って持ち石を偶数として残石数を6とするか、3個を取って持ち石を奇数として残石数を5とする2通りの手があります。
持ち石が奇数の場合は1個を取って持ち石を偶数にして残石数を7とします。
【問題3】
碁石の数が6n+1の場合の時のみ後手有利。
したがって27個から始める場合、先手有利です。
(【問題4】の回答から導かれます。)
【問題4】【問題5】
【問題2】により、27個まで表を延長すると以下のようになります。
残石数:123456789012345678901234567 後手番:偶×××奇偶偶×××奇偶偶×××奇偶偶×××奇偶偶×× 先手番:奇○○○偶偶奇○○○偶偶奇○○○偶偶奇○○○偶偶奇○○以上から、先手の戦略は、残石数をSとして、
0−偶:2個または3個 奇:1個
(コンピュータは3個を選択しているようです。)
1−偶:2個 奇:3個または4個
(コンピュータは4個を選択しているようです。)
2−偶:4個 奇:3個
3−偶:4個 奇:先手不利(存在せず)
4−偶:1個 奇:先手不利(存在せず)
5−偶:先手不利(存在せず) 奇:1個
取り石の最大値が奇数のとき、例えば5個のときは以下のようになりました。
残石数:123456789012345678901234567 後手番:偶××××奇奇××××偶偶××××奇奇××××偶偶×× 先手番:奇○○○○奇偶○○○○偶奇○○○○奇偶○○○○偶奇○○
◆ 問題へもどる
◆ 今週の問題へ