- ベストアンサー
あるパズルの全ての盤面の数
- 5×5のパズルゲームの全ての盤面の数を求める方法をご紹介します。
- +が動けるマスの数とPが動けるマスの数を掛け合わせることで全ての盤面の数を求めることができます。
- 具体的な例を挙げながら計算方法を説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
問題の言う意味がいまいち、理解できなかったのですが、倉庫番のようなゲームですね。 おそらく、3つの×はそれぞれを区別しないと言う前提なのでしょうね。 それを前提に書くと、 (計算もそれほどややこしくないです。) P ・ ・ ・ ・ ・ ・ ・ ・ +3 ・ ・ +2・ ・ +1・ ・ ・ X ・ ・ ・ X X +1、+3は壁から離すことができませんから行き場所はそれぞれ5通り、3通りです。 残りの+2には制約が無いはずなので全てを区別すると 3*5*20*19=5700 区別しないと重複した分を引くためにそれぞれを計算します。 +1と+2が左の壁についている分 5C2*3*19=570 +2と+3が右の壁についている分 3C2*5*19=285 後は引っ張れないということで有り得ない配置を引きます。 ・ ・ ・ +2 P ・ ・ ・ ・ +3 ・ ・ ・ ・ ・ +1・ ・ ・ X ・ ・ ・ X X +1の場所で5通り ・ ・ ・ ・ ・ ・ ・ ・ ・ +3 ・ ・ ・ +2 P +1・ ・ ・ X ・ ・ ・ X X 同じく5通り ・ ・ ・ ・ ・ ・ ・ ・ ・ +3 ・ ・ ・ ・ ・ +1・ ・ ・ X P +2・ X X +3の場所で3通り P +2・ ・ ・ +1・ ・ ・ +3 ・ ・ ・ ・ ・ ・ ・ ・ ・ X ・ ・ ・ X X 同じく3通り 5700-570-285-16=4829
その他の回答 (1)
- at9_am
- ベストアンサー率40% (1540/3760)
とっても面倒で、答えまでたどり着けそうもないので、求め方だけ。 a b c d e 1 P ・ ・ ・ ・ 2 ・ ・ ・ ・ A 3 ・ ・ B ・ ・ 4 C ・ ・ ・ X 5 ・ ・ ・ X X 便宜上、名前を付けました。 まずAの位置は、三通りあるのは良いですよね。つまりe1、e2、e3です。この内、e2のとき、(B,P)が(d1,e1)と(d3,e3)があり得ないのは分かりますか。例えば ・ ・ ・ B P ・ ・ ・ ・ A ・ ・ ・ ・ ・ C ・ ・ ・ X ・ ・ ・ X X のような場合です。これらは+を飛び越すか、引っ張らなければ成立しません。 同様のことがCにも起こります。 もうひとつ注意しなければならないのは、B、Pがa列、e列にあるとき、A,Cの動ける範囲が狭まるということです。なので、場合分けが必要になります。 話をまとめると、 1)b-dにB、Pが2つともあるとき、一つあるとき、一つもないときで場合分けしてBとPの位置決めをする 2)B,Pが2つともあるとき、A,Cは3*5通りの場所がある。 3)一つもないときを、両方ともa列にある、一つだけa列にある、一つもa列にない、に分けて計算する 3)一つしかないときを、Bがae列にあるか、Pがae列にあるかに分けて計算する。Bがae列にあるときは特に注意すべき点はないから割愛。 Pがae列にあるとき、飛び越すか引っ張るかのときを考慮して計算する。具体的には ・ ・ ・ ○ P ・ ・ ・ ・ A ・ ・ ・ ・ ・ C ・ ・ ・ X ・ ・ ・ X X となった時点で、○のところがおけないことに注意して(AとPの位置は決まっていることにも注意)Bの場合の数(13*5通りあるはず)を求める。残りの3カ所も同様。 4)1)-3)を足す という手順でやればとけるんじゃないかな、と思います。 実際の計算は、誰か計算の得意な人、お願いします。