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

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

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

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

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

この問題で使うもの

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

読み込み中…

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

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

ヒント

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

ヒント 1

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

ヒント 2

分解は一通りに決まります。最後のブロックが (長さ )か (長さ )かで場合分けすると、長さ の個数 について が成り立ちます。

ヒント 3

初期値は (空列)、( のみ)です。順に計算すると となります。

答えと解説

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

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

の文字列は、ブロック (長さ )とブロック (長さ )を 個以上並べたものです。

分解が一通りであることの確認. 文字列を左から読むとき、 が来ればそれはブロック 、 が来ればそれはブロック の先頭なので、次の文字と合わせて とするしかありません。したがって の各文字列のブロックへの分け方はただ一通りです。よって「ブロックの並べ方」を数えれば、文字列を重複なく数えられます。

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

よって

初期値. 長さ の文字列は空列 (ブロック 個)だけなので 。長さ の文字列は だけ( 単独は不可)なので 。

順に計算.

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

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

別解

は文字列 と を任意に連結してできる文字列全体である。この分解は一意である。理由は、文字列を左から読むと、 なら のブロック、 なら次も でなければならず のブロックになるからである。したがって、長さ の文字列の個数 は、長さ の と長さ の の並べ方の個数に等しい。

漸化式は である。初期値は (空列)、()。

計算すると
, , , , , , , , 。

検算として、 を 個使う場合を数える。 は 個で、ブロックの総数は 個。並べ方は 通りで、 について
。

よって答えは 。

この問題の確認

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

間違いを報告する

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

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

関連する問題