単元一覧 › 大学数学 オートマトン・形式言語

オートマトン・形式言語の問題

難易度 1教科書の例題レベル大学数学 オートマトン・形式言語

アルファベット 上の正規表現

を考え、 が表す言語を とします( は和集合、 はクリーネ閉包を表します)。 に属する長さ の文字列の個数を求めなさい。

この問題で使うもの

この問題を解けるようになるまで(7 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 正規表現が表す言語と文字列の判定
  2. 決定性有限オートマトンの動作と受理判定
  3. 樹形図で数え上げる
  4. 積の法則と和の法則
  5. 和の法則・積の法則と樹形図
  6. 状態ごとの文字列数の漸化式
  7. 正規言語に属する長さ n の文字列の数え上げ

ヒント

行き詰まったら、上から順に 1 つずつ開いてください。

ヒント 1

正規言語に属する長さ の文字列の数え上げの技能を使います。 の文字列を、ブロック 、、 への分解として見てみましょう。

ヒント 2

長さ の文字列の個数を とし、最初のブロックが 、、 のどれかで場合分けすると、 を と で表せます。分解が一通りに決まることも確かめましょう。

ヒント 3

、、 です。、 と順に計算していきましょう。

答えと解説

答えを見る
結果を記録する(このブラウザにだけ保存されます):
解説を読む

方針 の文字列は、ブロック (長さ )、(長さ )、(長さ )を 個以上並べたものです。ブロックへの分解を使って、長さ の文字列の個数 の漸化式を作ります。

分解が一通りであること 文字列の先頭の文字を見ると、最初のブロックが決まります。先頭が ならブロック 、 ならブロック 、 ならブロック です( で始まるブロックは だけ)。残りの部分にも同じことがくり返せるので、 の文字列のブロック分解はただ一通りです。したがって、文字列の個数はブロックの並べ方の個数と一致します。

漸化式 を に属する長さ の文字列の個数とします。 のとき、最初のブロックで場合分けします(和の法則)。
- 最初のブロックが :残りは に属する長さ の文字列で、 個。
- 最初のブロックが :同様に 個。
- 最初のブロックが :残りは長さ の文字列で、 個。

よって

初期値 長さ は空列(ブロック 個)の 個なので 。長さ は の 個なので ( 単独は に属しません)。

計算

(確認: の 個)



したがって、求める個数は 個です。

別解

は、、、 を並べてできる文字列全体である。 は必ず連続した偶数個で現れ、 の連続部分(ラン)の長さが偶数であれば、その部分は の列に一意に分解できる。よって、 の長さ の文字列の個数 は、ブロック 、(長さ1)と (長さ2)の並べ方の数に等しい。ブロックへの分解は一意なので重複は生じない。

漸化式は 、、 である。





検算として、 の個数 で場合分けする。長さ6では が 個、 が 個で、ブロック総数は である。 の位置の選び方は 、 の割り当ては 通りである。

  • :
  • :
  • :
  • :

合計は となり、漸化式の結果と一致する。

この問題の確認

AI が作成した問題です。公開前に次の確認を行いました。確認の方法について

間違いを報告する

この問題の誤り・分かりにくい点・難易度や学年のずれを知らせる
どこについての報告ですか

報告の内容と問題の番号を保存します。名前やメールアドレスは保存しません。

関連する問題