• ベストアンサー

5×5のマスに○と●を交互に置いていきます。5つ並べた人の勝ちとなる五目並べゲームについての質問です。

5×5の五目並べの問題です。 1.「○」の数と「●」の数の差は1以下である。 2. 「●」(後手)の数は「○」(先手)の数より少ない。 3: 勝負がついていない。 ものとする。 以上のことから全ての局面は何通りあるのかを求める問題です。 上記の問題が15×15になった場合の値はどうなるかそれぞれ求めたいのですが答えの見つけかたが分からず悩んでます。 出来れば詳しく解説付きで教えてもらえると助かります。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

こういう問題は、そう簡単には答えはでないでしょう。 一応考え方だけ。 ○の数がa、●の数がbのときの局面の数をS(a,b)とします。 勝負を考えないで自由にコマを置いた場合の局面の数をG(a,b)とすると、 G(a,b)=25!/(a!b!(25-a-b)!) S(a,b)はG(a,b)から勝負がついている局面の数を引けばいいから、 S(a,b)=G(a,b)-{5つ並んでいる局面の数} なので、{5つ並んでいる局面の数}が分かれば答えがでます。 5つ並ぶ列は、縦5列、横5列、斜め2列、計12列あります。 左端の縦1列に○が並んだときの局面の数は、 20!/((a-5)!b!(20-a-b)!) 他の列も同様です。 ●の場合も考えると、5つ並んでいる列は1つ以上ある局面の数は、 {20!/((a-5)!b!(20-a-b)!)+20!/(a!(b-5)!(20-a-b)!)}×12 となりそうでが、この中には、5つ並んでいる列が2つ以上ある場合が重複して含まれているので、その分を差し引く必要があります。 やっかいなのはここからです。 5つ並んでいる列が2つ以上ある局面の数は、その2つの列の関係性によって場合分けしながら計算しなければなりません。 (関係性とは、2つの列が「○と○」か「○と●」か、また「縦と縦」か「縦と横」か、等々) さらに、その中には5つ並んでいる列が3つ以上ある場合が重複して含まれているので、その分を差し引く必要があります。 5つ並んでいる列が3つ以上ある局面の数は、その3つの列の関係性によって場合分けしながら計算しなければなりません。 (場合分けは2つの列の場合よりさらに複雑になります) というようなことを、5つ並んでいる列が5列になるまで繰り返します。 5×5くらいなら時間をかけて丁寧に計算すれば答えは出せるかもしれませんが、 15×15になるとコンピュータを使って計算しないと難しいでしょうね。 (コンピュータを使ってもプログラミングはかなり難しそうです)

minako232
質問者

お礼

詳しい答えありがとうございますm(_ _)m こんなに詳しく回答してもらえると凄い助かります!! 計算式を元に算出してみますo(^-^)o

関連するQ&A