忍者ブログ

備忘録

CSCのブログのバックアップだったけど、こっちがほんちゃんに。

ととQ

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ととQ

世界樹と魔女と迷宮の石取りゲーム


3個ずつ石をとって最後に石をとったほうが勝ち。なのだけれど意外に複雑。
一つの山だけをみると、自分が取った時点で、石を4x個残すのが必勝。
石が10個なら、先攻で2個とればいい。
最初が8個や12個なら後攻が勝てる。
二人だからこれ自体はさほど難しくない。

ちょっと複雑なのはこの山が3つあること。



まず山が2つの時から考える。
石の個数が同じ山の場合、先攻になってしまうと、
後攻側は別の山で先攻と同じだけ取るだけでよい。
真似戦略で、これなら後攻側が最後の石をとることになる。
先攻は負け。

次に2つの山の個数が違う場合。
個数差が3以内なら先攻がその個数分とれば、
2つの山の個数が同じになり、あとは後攻と同じことをすればいい。
1手かけてさっきのと同じ状態にしただけ。先攻が必勝。

じゃ、差が4以上の場合は?となると、
やはり真似戦略がそのまま有効。
差が4なら最後にその4多い山が残る。
4の山が一つある状態と大差ない。
つまり後攻は先攻の真似をするだけでいい。後攻が必勝。


差が5なら、先攻側が多い山から1だけとり、
残りは真似をすれば、さっきの4の時の後攻真似と同じになる。
差が6なら2だし、7なら3だ。
8なら4の時と同じで後攻側が真似するだけで、
残り8の山をやるのと同じになる。
要は差を調整できればいい。差が4xかそうじゃないかの違い。

ということは、2つの山の場合は、
相手の真似をするという戦略だけで単純化でき、
先後でそのまま勝敗がきまると言ってもいい。




で3つの山がある場合。
単純な真似戦略ができない。
または真似をできても、勝敗は残りの一つの山の数字次第となる。
なので順々に考える。


1つの山だけ残っている場合は、特に語るまでもないのだが、
これは1つの山だけになった瞬間に勝敗は決まっているということになる。
ということは2つの山になった時点で、そういう状態にしなければならない。
で、2つの山になった時点での勝敗も先ほどの通りわかっている。
つまり、3つ目の山をどういう形にして2つの山にするか。が焦点になる。

どの山が3つ目なのかは一見わからない。どれも3つ目になり得るからだ。
そこで3つの山を単純化する。4xかそうでないかだ。


仮に(3,3,4)の山があるとする。
4の山が1つあるなら、後攻が有利だ。
先攻が4を削りに来るなら、次に自分で4の山をなくせば同じ数の山2つ。
3なら同じ数だけ別の3の山を削ればよい。最後は4の山だけが残る。
これは手順が違うだけで、やることは同じ。

これが(3,4,4)なら逆に先攻が有利となる。
3を削れば2つの山の後攻と同じだからだ。

(4,4,4)は後攻。
先攻と別の山を同じ数だけ崩せばいい。
(1,1,4)になろうが、(2,2,4)になろうが、(3,3,4)と同じになるからだ。

(3,3,3)もわかりやすく先攻だ。
どの山でも削りきってしまえば2つの山の後攻と同じになるからだ。
(3,4,4)と同じ仕組み。


では(5,4,4)ならどうか。
そう。5から1を引けば(4,4,4)になる。先攻有利だ。
(5,5,4)にはどうか。
先攻が4の山に手を出せば、後攻側は次に山を消せばいい。
あとは先攻の真似で良く、後攻が勝てる。
ということは(5,5,5)はどの山でもいいから1を引けばいいので先攻。



以上から4xの山が奇数個あるなら後攻。偶数個なら先攻が有利ではないか?
という仮説が生まれる。

しかし(7,6,4)はどうだろうか。先攻が7から1を引いて、
(6,6,4)にすればあとは後攻側の真似で勝てる。
後攻側から見れば先攻負けだ。4xはどちらも奇数個だ。

仮説は否定される。4xが直接的なものではなく、
どうやら手数の問題ではないか?となる。



3以下は一手で解消できるが、4は最低でも2手かかる。
相手がどうとっても、2手で4を調整できるのが肝だ。
5以上になってしまうと、コントロールができないのだ。

(4,4,4)は手数としては絶対に6手かかる。
これが後攻勝ちであるから、その状態を1手で作れるから(5,4,4)は先攻勝ち。
(5,5,4)はまぁ別の理由で後攻勝ちではあるが、
やはりこれも偶数手で終わらせることができる。
その状態を1手でつくれる(5,5,5)は先攻で勝てるわけである。


(5,4,3)だとどうなるか。
5から1を引けば、(4,4,3)で勝ち目がないが、
2を引けば、(3,4,3)で勝てる。先攻有利。
3を引くと、(2,4,3)で後攻側は3から1を引けばよい。




これで大まかな材料は出そろった。
先後で必勝があるのならば、4xは言い換えればゼロと変わらない。
手数の問題として、どちらかが必ず2手で終わらせるように取るからだ。
実際、ゲーム中で(12,8,8)が出たことがあったが、見込み通り後攻で勝てた。


ということは4xの山がいくつあるかが、最初に確認すべきことになる。
3つとも4xの山ならば、何のことはない後攻だ。
2つならばどうか。一手使えば4xの山を3つにできるので先攻。

1つならばどうなるか。
まずいえるのが4xの山を2つにしてしまうと負けるということだ。
しかしよく考えてみると、4xの山をゼロとみなすのであれば、
2つの山で考えるのと変わらない。
2つの山の差を4xにすることで、先攻が勝てるわけだ。
4xの山は相手に合わせてとればよいのだから、ほぼ真似でいい。
ただし、その2つの山がすでに同じ数もしくは4xの差であれば負ける。
(10,6,4)や、(6,6,4)とかだ。
当然その場合は後攻が勝ちだ。




では4xの山がゼロならばどうすればよいだろうか。ここからがちょっと難解。

先ほどの4x山が1つの状態の勝ち確ができないようにすることが求められる。
4xの山を作らないことと、
同じ数の山を作って、相手に4x山を作らせないということだ。

当然双方がそれを考えて取っていけば、いつかは山が削られるのだが、
4xの山というのは別の見方をすると、4*ゼロ個の山である。
つまり先に山を削りきってはいけないということになる。
ということは、相手に山を取らせるためには、
4x+1である5およびその前段階の5+4xをどうとるかになる。


しかしわざわざ4x+1をとりにいく必要はなかったりする。
初期状態で4x+1個および4x個の山がない状態は限られるからだ。


例えば4x+1のある状態でいえば、
(7,6,5)のような状態が想定されるのだが、
これはどうやっても後攻勝ちになる。
(9,7,6)の状態は上から2手分多い状態なので、やはり後攻勝ち。

4x+1をとった状態という意味で、後攻が勝てるわけだ。


そして、4xおよび4x+1が入らないような初期状態では、
例えば(11,7,6)は2つの山に4xの差があるので、
先攻が勝てることになる。(10,7,6)も同様だ。
2つの山の差が必ず4xになるか、個数が同じになっていれば、
別の山で4xを作ればいいので、先攻勝ちである。

やはり初期状態によって先後で勝敗が決まるわけだ。



結論としては、
3つ山の個数が全部4x個なら後攻勝ち。
2つなら先攻勝ち。
1つなら、残り二つの山の差が4xなら後攻。そうじゃないなら先攻勝ち。
ゼロなら、4x+1の個数が山が一つはある状態、かつ、どの山の差も4xではない場合は後攻。
それ以外は先攻。




若干注意が必要なのは、状態に3以下が混じっているときだ。
この場合の取り方には注意が必要。
例えば7,4,3は後攻勝ちなのだが、先攻側が7から1をとってくるなら、
後攻は6から3をとらなくてはならない。
3から2をとってくるなら、7から2をとる。
一方の山が3以下になったら差の4xを埋めていくようにとっていく必要がある。
差の4xをキープする。
単純な真似ではないというところ。

あと、CPU側が最善を打たない。ということもある。
真似ができないこともあるので、結局考えなきゃいけない。


//
PR

コメント

カレンダー

03 2025/04 05
S M T W T F S
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 28 29 30

アーカイブ

ブログ内検索

アクセス解析

カウンター

忍者ポイント広告

アクセス解析