オートマトン・形式言語の問題
アルファベット 上の決定性有限オートマトン を考えます。状態の集合は 、初期状態は 、受理状態は のみです。遷移関数 は次の表で与えられます。
| 状態 | |||
|---|---|---|---|
を 以上の整数とします。 が受理する長さ の文字列の個数を の式で求めてください。
この問題で使うもの
- 状態ごとの文字列数の漸化式(説明と入口の問題)
- 遷移行列による受理文字列数の一般項(説明と入口の問題)
この問題を解けるようになるまで(49 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 決定性有限オートマトンの動作と受理判定
- 樹形図で数え上げる
- 積の法則と和の法則
- 和の法則・積の法則と樹形図
- 状態ごとの文字列数の漸化式
- 三角形の角の大きさ
- 対頂角と平行線の同位角・錯角
- 三角形の外角と角の組み合わせ
- 小数の四則計算
- 分数のたし算・ひき算
- 分数のかけ算・わり算
- 小数と分数のまじった計算
- 逆算(□ を求める)
- 正負の数の加法・減法
- 四則の混じった計算の順序
- 正負の数の乗除・累乗と四則混合
- 分配法則を使った計算のくふう
- 文字式の計算(同類項・分配法則)
- 1 次方程式の解き方
- 二等辺三角形の角
- 平行四辺形と特別な四角形の性質
- 三角形・四角形の面積
- 約数の見つけ方
- 素因数分解と約数の個数
- 平方根の意味と根号の簡単化
- 三平方の定理
- 乗法公式による展開
- 折り返した図形の角と長さ
- 三平方の定理と平面図形
- ベクトルの演算と成分
- 行列の和・積と 2 次の逆行列
- 順列・円順列・重複順列
- 行列式
- 掃き出し法と連立 1 次方程式
- 行列の階数と解の存在
- ベクトル空間・一次独立・基底・次元
- 円の周の長さと面積
- おうぎ形の弧の長さと面積
- 弧の長さからおうぎ形の中心角と面積を求める
- 特別な直角三角形の辺の比
- 弧度法と単位円による三角関数
- 加法定理と 2 倍角・半角・積和の公式
- 線形変換と行列
- 核と像と次元定理
- 固有値と固有ベクトル
- 掃き出し法による逆行列
- 基底の変換と表現行列
- 対角化と行列の累乗
- 遷移行列による受理文字列数の一般項
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
各状態に到達する長さ の文字列の個数を変数でおき、表から各状態に入る遷移を数えて漸化式を立てましょう。状態を と番号づけると、 が番号をどう変えるかにも注目してください。
ヒント 2
と の対称性から、 と に到達する個数は等しくなります。また、全体の和が であること、 が一定であることを使うと変数を減らせます。
ヒント 3
は を満たし、 となります。あとは と から を求めましょう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
長さ の文字列 個それぞれについて、 から読み終えたときの状態を考えます。最後に状態 にいる文字列の個数を、それぞれ とおきます。初期状態は なので、 です。
遷移の構造
状態 を と番号づけると、表から次のことが読み取れます。
- は番号を 増やす
- は番号を 減らす
- は番号を変えない
ここで番号は を法として考えます。したがって は「( の個数)( の個数)」となる文字列を受理します。
漸化式
各状態に入る遷移を表から数えると、次の漸化式が得られます。
と を入れかえる対称性(または漸化式と初期値を比べること)から、すべての で です。そこで とおくと、
となります。
漸化式を解く
(1) 全体の個数について、 です。
(2) なので、 です。
(3) (1) より です。これを の漸化式に代入すると
となります。特殊解として をとると、 が成り立ちます。一般解は と書けます。 より なので、
です。
(4) と を足して で割ると、
が得られます。
確認
- :値は で、空文字列のみです。
- :値は で、 のみです。
- :値は で、 です。
いずれも直接数えた結果と一致します。
よって、求める個数は です。
別解
状態を と の元に対応させる。表から、 は状態を 、 は 、 は 動かすことが分かる(: )。したがって文字列を読んだ後の状態は ( の個数 の個数) mod 4 で決まる。初期状態も受理状態も なので、受理されるのは となる文字列である。
1 の 4 乗根の判別式(単位根フィルター)を使う。 として、求める個数は
。
各項は : 、: 、: 、: 。
よって個数は 。
検算: は (空列)。 は ( のみ)。 は ()で、直接数えた結果と一致する。