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

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

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

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

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

この問題で使うもの

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

読み込み中…

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

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

ヒント

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

ヒント 1

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

ヒント 2

先頭(または最後)が か かで、そのブロックが一通りに決まります。最後のブロックが (長さ )か (長さ )かで場合分けすると、 を と で表せます。

ヒント 3

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

答えと解説

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

方針:ブロックへの分解で漸化式を立てる。

の文字列は、ブロック (長さ )とブロック (長さ )を好きな順に好きな個数だけ並べたものです。

分解が一通りであることの確認 文字列を先頭から読むと、先頭が ならば最初のブロックは に決まり、先頭が ならば最初のブロックは に決まります( で始まるブロックは だけだからです)。したがって の各文字列は、ブロックの並べ方とちょうど一対一に対応します。よって「長さ の文字列の個数」は「長さの合計が になるブロックの並べ方の個数」に等しくなります。

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

したがって

です。初期値は、空列だけの 、文字列 だけの です。

順に計算する

(確認: は 、 は で、直接数えた結果と一致します。)

よって求める個数は です。

別解

は と を並べてできる文字列全体である。 は長さ 1、 は長さ 2 のブロックである。

を長さ の文字列で に属するものの個数とする。

文字列を と のブロックに分ける方法は一意である。実際、 は必ず次の と対になって になり、 は単独のブロックになる。したがって、長さ の文字列の個数はブロック列の個数に等しい。

最初のブロックで場合分けすると、 が成り立つ。初期値は (空列)、()である。

順に計算する。
(, )







検算として、長さ 4 の文字列を数える。ブロックの分け方は , , , , の 5 通りで、 と一致する。

よって答えは 89 である。

この問題の確認

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

間違いを報告する

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

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

関連する問題