0

三目並べの必勝法

45155
0
$$$$

子どもの頃やったことあると思います。

○×ゲームともいいます。

英語名はtic-tac-toeです。

というわけで、○×ゲームの必勝法をまとめました。

必勝法などない

「おい!必勝法って言っただろ!」と言う人がいるかもしれませんが、必勝法があるとは一言も言っていません。

騙してしまったようですみません。

「場合分け」の考え方が理解できていれば誰でも証明できます。

以下、先手を$○$、後手を$×$とし、右隣に打った順番を書きます。

記載ルール

$$ルール1 回転すると同じになる盤面は省略する$$
例えば、最初に右上に$○$を打った場合、左に90°回転すると左上に打ったものと
同じとみなすことができます。
同じように左下、右下に打った場合も、盤を回せば左上に打ったものと同じとみなせるので、考えるのは左上の場合だけにします。

$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ×2 &   \\ ○3 & ○5 & \\ ×4 & & \end{array} \right) \end{eqnarray} $$ \begin{eqnarray} \left( \begin{array}{cc} & & \\ ×2 & ○5 & \\ ○1 & ○3 & ×4 \end{array} \right) \end{eqnarray} $
同じとみなせる 

$$ルール2 対照的な盤面は省略する$$
例えば、左上に$○$を打ち、上に$×$を打ったとします。
このとき、盤を左上、真ん中、右下を通る対象軸とする線対称と考えると、左に$×$を打ったときと同じとみなせるので、左に打ったパターンは省略します。

$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ×2 &   \\ ○3 & ○5 & \\ ×4 & & \end{array} \right) \end{eqnarray} $$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ○3 & ×4 \\ ×2 & ○5 & \\ & & \end{array} \right) \end{eqnarray} $
同じとみなせる 

左上に$○$を打った場合

$×$が真ん中以外に置いた場合は$○$は必ず勝つので、$○$の勝率は少なくとも$\frac{4}{5}$以上はあります。

考え方も簡単なので、おススメです。

$ \begin{eqnarray} \left( \begin{array}{cc} ○1 &   &   \\ & & \\ & & \end{array} \right) \end{eqnarray} $

1.上に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ×2 &   \\ ×4 & ○5 & \\ ○3 & & \end{array} \right) \end{eqnarray} $

右上と左下のダブルリーチで$○$の勝ちです。

2,右上に$×$を打った場合
(ルール2から、左下に打ったパターンは省略)
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 &   & ×2 \\ ×4 & & \\ ○3 & & ○5 \end{array} \right) \end{eqnarray} $

真ん中と下のダブルリーチで$○$の勝ちです。

こちらでも$○$の勝ちです。
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 &   & ×2 \\ ○3 & ○5 & \\ ×4 & & \end{array} \right) \end{eqnarray} $

3.右に$×$を打った場合
(ルール2から、下に打ったパターンは省略)
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 &   & \\ ×4 & ○5 & ×2 \\ ○3 & & \end{array} \right) \end{eqnarray} $

右上、右下のダブルリーチで$○$の勝ちです。

こちらでも$○$の勝ちです。
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 &   & ○5 \\ & ○3 & ×2 \\ & & ×4 \end{array} \right) \end{eqnarray} $

4.右下に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ×4 & ○3 \\ & & \\ ○5 & & ×2 \end{array} \right) \end{eqnarray} $

左と真ん中のダブルリーチで$○$の勝ちです。

1.~4.から、先手が左上に打ったとき
後手は上、右上、真ん中、右、右下のうち、真ん中以外に置くと負けるので
先手が左上に打った場合の勝率は$\frac{4}{5}$です。

 

真ん中に$×$を打った場合

$ \begin{eqnarray} \left( \begin{array}{cc} ○1 &   &   \\ & ×2 & \\ & & \end{array} \right) \end{eqnarray} $

1.上に$○$を打った場合
(ルール2から、左に打ったパターンは省略)
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ○3 & ×4 \\ ×6 & ×2 & ○7 \\ ○5 & & \end{array} \right) \end{eqnarray} $

どちらに$×$を打っても引き分けです。

2.右上に$○$を打った場合
(ルール2から、左下に打ったパターンは省略)
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ×4 & ○3 \\ & ×2 & \\ & ○5 & \end{array} \right) \end{eqnarray} $

どちらかがリーチとなった場合、もう一方がリーチを阻止することで引き分けです。

3.右に$○$を打った場合
(ルール2から、下に打ったパターンは省略)
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 &   & \\ & ×2 & ○3 \\ & & \end{array} \right) \end{eqnarray} $

3-1.上に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ×4 & \\ & ×2 & ○3 \\ & ○5 & \end{array} \right) \end{eqnarray} $

3-1-1.右上に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ×4 & ×6 \\ & ×2 & ○3 \\ ○7 & ○5 & \end{array} \right) \end{eqnarray} $

左と右下のダブルリーチで$○$の勝ちです。

3-1-2.左に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ×4 & \\ ×6 & ×2 & ○3 \\ & ○5 & ○7 \end{array} \right) \end{eqnarray} $

左下と右上のダブルリーチで$○$の勝ちです。

3-1-3.左下に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ×4 & ○7 \\ ○9 & ×2 & ○3 \\ ×6 & ○5 & ×8 \end{array} \right) \end{eqnarray} $

引き分けです。

3-1-4.右下に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ×4 & \\ & ×2 & ○3 \\ & ○5 & ×6 \end{array} \right) \end{eqnarray} $

どちらかがリーチとなった場合、もう一方がリーチを阻止することで引き分けです。

3-2.右上に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 &   & ×4 \\ ×6 & ×2 & ○3 \\ ○5 & & \end{array} \right) \end{eqnarray} $

どちらかがリーチとなった場合、もう一方がリーチを阻止することで引き分けです。

3-3.左に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 &   & ○5 \\ ×4 & ×2 & ○3 \\ & & \end{array} \right) \end{eqnarray} $

上、右下のダブルリーチで$○$の勝ちです。

3-4.左下に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 &   & ○5 \\ & ×2 & ○3 \\ ×4 & & \end{array} \right) \end{eqnarray} $

上、右下のダブルリーチで$○$の勝ちです。

3-5.下に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ○5 & ×6 \\ ×8 & ×2 & ○3 \\ ○7 & ×4 & ○9 \end{array} \right) \end{eqnarray} $

引き分けです。

3-6.右下に$×$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & & \\ & ×2 & ○3 \\ & & ×4 \end{array} \right) \end{eqnarray} $

左に$○$を打った場合、左下に$×$を打つと、$×$のダブルリーチで$×$の勝ちです。
左以外に打った場合、リーチを阻止すれば引き分けです。

4.右下に$○$を打った場合
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & & \\ & ×2 & \\ & & ○3 \end{array} \right) \end{eqnarray} $

4-1.上に$×$を打った場合
(ルール1から、下に打ったパターンは省略
また、ルール2から、左に打ったパターンは省略)
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & ×4 & ○7 \\ ○9 & ×2 & ×8 \\ ×6 & ○5 & ○3 \end{array} \right) \end{eqnarray} $

引き分けです。

4-2.右上に$×$を打った場合
(ルール1から、左下に打ったパターンは省略)
$ \begin{eqnarray} \left( \begin{array}{cc} ○1 & & ×4 \\ & ×2 & \\ ○5 & & ○3 \end{array} \right) \end{eqnarray} $

左、下のダブルリーチで$○$の勝ちです。

1.~4.から、$×$は引き分けに持ち込む手が必ず存在します。

せっかくなので、$×$がランダムに打った場合の$○$の勝率を計算します。

$×$が真ん中に打った場合の$○$の勝率は

$3.の勝率+4.の勝率$
$=(\frac{1}{4}×\frac{1}{6}×\frac{1}{2} + \frac{1}{4}×\frac{1}{6}+\frac{1}{4}×\frac{1}{6}) + (\frac{1}{4}×\frac{1}{2})$
$=\frac{1}{4}×\frac{1}{6}×\frac{1}{2}(1 + 2 + 2 + 6)$
$=\frac{11}{48}$

$×$が真ん中以外に打った場合も加算すると、$○$が左上に打ったときの勝率は
$\frac{4}{5} + \frac{11}{48}$
$=\frac{203}{240}$

これは、初手で$○$を上に打ったときや、真ん中に打った時よりも高いです。

上に$○$を打った場合

省略しますが、後手は真ん中に打つことで引き分けにできます。

注意すべき盤面だけ紹介します。
$ \begin{eqnarray} \left( \begin{array}{cc} & ○1 &   \\ ○3 & ×2 & \\ & & \end{array} \right) \end{eqnarray} $

$○$は左上に打つとダブルリーチなので、$×$はそれを阻止します。

$ \begin{eqnarray} \left( \begin{array}{cc} & ○1 &   \\ & ×2 & \\ ○3 & & \end{array} \right) \end{eqnarray} $

$○$は左上に打つとダブルリーチなので、$×$はそれを阻止します。

$ \begin{eqnarray} \left( \begin{array}{cc} ×4 & ○1 &   \\ & ×2 & \\ ×6 & ○3 & ○5 \end{array} \right) \end{eqnarray} $

左、右上のダブルリーチです。$×$の勝ちです。

$○$を真ん中に打った場合

$×$のターンの後、$○$$×$の反対側を除くと必ずリーチができるので、$×$はリーチを阻止していけば引き分けに持ち込めます。

例:$○$は右下以外は全てリーチとなる
$ \begin{eqnarray} \left( \begin{array}{cc} ×2 & &   \\ & ○1 & \\ & & \end{array} \right) \end{eqnarray} $

$×$の反対側に$○$を打った場合は、ダブルリーチになる可能性があるので気を付けましょう。

例:ダブルリーチ予備軍
$ \begin{eqnarray} \left( \begin{array}{cc} ×2 & &   \\ & ○1 & \\ & & ○3 \end{array} \right) \end{eqnarray} $

まとめ

・○×ゲームの先手の方針

  1. 四隅のいずれかに打つ
  2. 相手が真ん中以外に打った場合は勝ち
  3. 相手が真ん中に打った場合は、1.の反対側に打つ
    相手の動きによっては$\frac{1}{8}$の確率で勝てるが、最善手を打たれると引き分けとなる

・○×ゲームの後手の方針

  1. 真ん中が空いていたら真ん中に打つ
  2. 相手がダブルリーチにならないように打つ

・もちろん、先手でも後手でも相手がリーチをして来たら阻止し、相手がミスをしてこちらが勝てる場合は勝ちに行きます。

投稿日:2021629
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

あーく
あーく
107
189153
使える数学、面白い数学の分かりやすい解説を心がけています。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中