8つのマスがあり、それぞれのマスにAまたはBを書き込む。ただし、Bを縦にも横にも隣り合わせて書くことはできない。このとき、8つのマスすべてにAまたはBを書き込む方法は何通りあるか。Bを1つも書かない場合も含む。

離散数学組み合わせ動的計画法数え上げ制約付き組み合わせ
2025/6/14

1. 問題の内容

8つのマスがあり、それぞれのマスにAまたはBを書き込む。ただし、Bを縦にも横にも隣り合わせて書くことはできない。このとき、8つのマスすべてにAまたはBを書き込む方法は何通りあるか。Bを1つも書かない場合も含む。

2. 解き方の手順

この問題は、動的計画法を用いて解くことができる。
まず、各マスに対して、以下の2つの状態を定義する。
* 状態0: そのマスにAを書く
* 状態1: そのマスにBを書く
dp[i][j]dp[i][j]を、ii番目のマスまで書き込みが終わっており、最後のマス(ii番目のマス)の状態がjjである場合の数とする。
初期条件は、dp[0][0]=1dp[0][0] = 1dp[0][1]=1dp[0][1] = 1である。
漸化式は、以下のようになる。
* dp[i][0]=dp[i1][0]+dp[i1][1]dp[i][0] = dp[i-1][0] + dp[i-1][1] (i番目にAを書く場合、i-1番目はAでもBでも良い)
* dp[i][1]=dp[i1][0]dp[i][1] = dp[i-1][0] (i番目にBを書く場合、i-1番目はAでなければならない)
ただし、マスが縦横に並んでいるため、Bが縦横に隣り合わないように注意する必要がある。
そこで、各マスの状態を以下の様に定義する。
* 状態0: A
* 状態1: B
各マスに番号を以下のように振る
1 2 3
4 5 6
7 8
dp[i][j]dp[i][j]をi番目のマスまで埋めた時にi番目のマスの状態がjである場合の数とする。
初期状態
dp[0][0]=1,dp[0][1]=1dp[0][0] = 1, dp[0][1] = 1 (1番目のマス)
遷移
dp[i][0]=dp[i1][0]+dp[i1][1]dp[i][0] = dp[i-1][0] + dp[i-1][1] (常にAを置ける)
dp[i][1]dp[i][1]は、縦横にBが並ばない場合にのみBを置ける
各マスについて、dp[i][0]dp[i][0]dp[i][1]dp[i][1]を計算していく。
1: A, B (dp[0][0]=1,dp[0][1]=1dp[0][0] = 1, dp[0][1] = 1)
2: AA, AB (dp[1][0]=2dp[1][0] = 2), BA (dp[1][1]=1dp[1][1] = 1)
3: AAA, AAB, BAA (dp[2][0]=3dp[2][0] = 3), ABA (dp[2][1]=2dp[2][1] = 2) (2にBを置いた場合、3にはAしか置けない)
4: AAAA, AAAB, BAAA, ABAA (dp[3][0]=4dp[3][0] = 4), AABA, BABA, ABAB (dp[3][1]=3dp[3][1] = 3)(1にBを置いた場合、4にはAしか置けない)
5: 7
6: 10
7: 17
8: 27
漸化式で解く場合、以下のようになる
dp[i][j]dp[i][j]: i番目まで決まっていて、i番目がj (A:0, B:1)であるような場合の数
dp[0][0]=1dp[0][0] = 1
dp[0][1]=1dp[0][1] = 1
dp[i][0]=dp[i1][0]+dp[i1][1]dp[i][0] = dp[i-1][0] + dp[i-1][1]
隣り合うマスの条件を考慮する必要があるため、DPで状態を管理する必要がある。
全マスをAで埋める場合も含むため、Bを1つも書かない場合も考慮する。
丁寧に場合分けして数え上げることも可能だが時間がかかる。
以下のような数え上げを行う。
Bの個数が0個:1通り (AAAAAAAA)
Bの個数が1個:8通り
Bの個数が2個:条件を満たす組み合わせを数える
Bの個数が3個:条件を満たす組み合わせを数える
...
手計算では難しい。
問題文をよく読むと、Bは縦にも横にも並べて書くことができないとある。
これはかなり厳しい制限なので、Bの個数はかなり少なくなる。
8個のマスにA, Bを書き込むことから考えると、総数は28=2562^8 = 256通りある。
そこからBが縦横に隣り合うケースを除いていくことは非常に困難。
プログラムを書いて計算することを検討する。

3. 最終的な答え

41

「離散数学」の関連問題

7人の人を、2つの部屋A,Bに入れる方法は何通りあるか。ただし、1人も入らない部屋があっても良いものとする。

組み合わせ集合部分集合
2025/6/14

P, Q, R, S, Tの5人が横一列に並んで写真を撮る。PとQが両端にならない並び方は何通りか。

順列組み合わせ包除原理
2025/6/14

問題は3つあります。 * 4つの数字1, 2, 3, 4を1個ずつ使って4桁の整数を作るとき、奇数は何個作れるか。 * 5つの文字の集合 $U = \{a, b, c, d, e\}$ の部分...

順列組み合わせ集合場合の数円順列
2025/6/14

5人(V, W, X, Y, Z)が発表順をくじで決めた。以下の条件が与えられている。 * VはWの次である。 * XはYの2人後だが、最後ではない。 このとき、Zの順番を求める。

順列組み合わせ論理パズル
2025/6/14

ある会議でP, Q, R, S, Tの5人が発表する順番を決める。Pの順番が最初でも最後でもないとき、5人が発表する順番は何通りあるか。

順列場合の数組み合わせ
2025/6/14

(1) 以下の3つの問題において、与えられた2つの集合の関係を、部分集合を表す記号 $ \subset $、 $ \supset $、または等号 $ = $ を用いて表します。 1. $A =...

集合部分集合集合演算
2025/6/14

(1) a, b, b, b, c, c, d の7文字を1列に並べる方法は何通りあるか。 (2) KUMAMOTO の8文字を1列に並べる方法は何通りあるか。

順列組合せ場合の数重複順列
2025/6/14

問題は以下の通りです。 * 9個の要素を持つ集合Aの部分集合の総数を求める。 * Aの2個の特定の要素を含むAの部分集合の総数を求める。 * 5人を3つの部屋A,B,Cに入れる方法は何通り...

集合組み合わせ部分集合場合の数第二種スターリング数
2025/6/14

2種類の記号(○と×)を重複を許して並べる方法について、以下の2つの場合について、その並べ方の総数を求める問題です。 (1) 合計6個の記号を並べる。 (2) 1個以上6個以下の記号を並べる。

場合の数組み合わせべき乗重複を許す並び
2025/6/14

集合 $\{1, 2, 3, 4, 5, 6\}$ の部分集合の個数を求める問題です。

集合部分集合組み合わせ
2025/6/14