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

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

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

終端記号 、非終端記号 、開始記号 をもち、次の 4 つの生成規則からなる文脈自由文法 を考える。

文字列 は で生成される。開始記号 から を得る最左導出を書いたとき、生成規則を何回適用するか(導出のステップ数)を求めよ。

この問題で使うもの

ヒント

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

ヒント 1

技能「文脈自由文法の導出と導出木」を使います。開始記号 から、いちばん左の非終端記号を 1 回ずつ書き換えて をつくってみましょう。

ヒント 2

を 1 回使うごとに、外側に と が 1 個ずつ増えます。 と では が 1 個ずつ増えます。 の中の , , の個数を数えましょう。

ヒント 3

と進みます。ここから を書き換えて をつくるには、あと何回の書き換えが必要でしょうか。

答えと解説

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

方針 開始記号 から、いちばん左の非終端記号を 1 つずつ生成規則で書き換えて をつくる(最左導出)。書き換えるたびに 1 ステップと数える。

どの規則を使うかの決め方 この文法の文形式には、非終端記号がいつもちょうど 1 個しかない。また、つくりたい文字列を見ればどの規則を使うかが 1 通りに決まる。
- を書き換えるとき、まだ外側に をつける必要があれば を、そうでなければ を使う。
- を書き換えるとき、まだ を続ける必要があれば を、最後の なら を使う。

は「 が 2 個、 が 3 個、 が 2 個」なので、次のように導出できる。

導出木との対応 この導出を導出木で表すと、根 の子が 、その の子が 、その の子が 、その の子が 、さらにその の子が 、最後の の子が となる。葉を左から読むと になり、 が で生成されることが確かめられる。導出木の内部節点(非終端記号の節点)は の 6 個で、これは規則を適用した回数と一致する。

よって、生成規則を適用する回数は 回である。

別解

文法 は 、 である。 を導出する。

が 2 個、 が 2 個あるので、 を 2 回適用する。その後 を 1 回適用する。
から を得るには、 を 2 回、 を 1 回適用する。

最左導出(各段階で非終端記号は 1 個しかないので導出は一意):

適用した規則を数える。 が 2 回、 が 1 回、 が 2 回、 が 1 回で、合計 回。

検算: 導出の各行で文字列が変化するのは 6 回で、上の矢印も 6 本である。また、各段階で非終端記号が 1 個だけなので、導出は一意に決まる。よって 6 ステップである。

この問題の確認

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

間違いを報告する

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

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

関連する問題