応用情報技術者 2017年 秋期 午前2 問02
問題文
次の BNF において非終端記号〈A〉から生成される文字列はどれか。
選択肢
ア:123(正解)
イ:124
ウ:127
エ:128
BNFによる文字列生成問題【午前2 解説】
要点まとめ
- 結論:非終端記号〈A〉から生成される文字列は「123」である。
- 根拠:〈A〉は〈R_0〉、〈B〉〈R_2〉、〈C〉〈R_1〉など複数の規則を持ち、数字の組み合わせを解析すると「123」が生成可能。
- 差がつくポイント:BNFの展開順序と非終端記号の定義を正確に理解し、各規則の数字集合を正しく把握することが重要。
正解の理由
〈A〉は以下の4つの生成規則を持ちます。
- 〈R_0〉:0,3,6,9
- 〈A〉〈R_0〉:〈A〉の文字列に0,3,6,9を付加
- 〈B〉〈R_2〉
- 〈C〉〈R_1〉
ここで、
- 〈R_0〉 = {0,3,6,9}
- 〈R_1〉 = {1,4,7}
- 〈R_2〉 = {2,5,8}
〈B〉は〈R_1〉を含み、〈C〉は〈R_2〉を含むため、〈A〉から「1」「2」「3」の組み合わせ「123」が生成可能です。
選択肢の中で「123」だけが〈A〉の規則に合致します。
選択肢の中で「123」だけが〈A〉の規則に合致します。
よくある誤解
- 〈A〉が単に〈R_0〉の数字だけを生成すると誤解しがちです。
- 〈B〉や〈C〉の定義を無視して数字の組み合わせを考えると誤答になります。
解法ステップ
- 〈R_0〉、〈R_1〉、〈R_2〉の数字集合を確認する。
- 〈A〉の生成規則を読み解き、どの非終端記号がどの数字を生成するか把握する。
- 〈B〉と〈C〉の定義を展開し、それぞれが生成可能な数字を確認する。
- 選択肢の数字列が〈A〉から生成可能かを検証する。
- 生成可能な文字列が「123」であることを確認し、選択肢アを選ぶ。
選択肢別の誤答解説
- イ(124):4は〈R_1〉にあるが「124」の順序で〈A〉から生成できない。
- ウ(127):7は〈R_1〉にあるが「127」の順序で〈A〉から生成できない。
- エ(128):8は〈R_2〉にあるが「128」の順序で〈A〉から生成できない。
補足コラム
BNF(Backus-Naur Form)は文法の形式的記述に用いられ、プログラミング言語やデータ構造の定義に不可欠です。非終端記号の展開を正確に理解することが、文字列生成問題の解答の鍵となります。
FAQ
Q: 〈A〉はなぜ〈B〉〈R_2〉や〈C〉〈R_1〉を含むのですか?
A: 〈A〉の定義は複雑な文字列を生成するために他の非終端記号〈B〉や〈C〉を利用し、数字の組み合わせを広げています。
A: 〈A〉の定義は複雑な文字列を生成するために他の非終端記号〈B〉や〈C〉を利用し、数字の組み合わせを広げています。
Q: どうして「123」が生成可能とわかるのですか?
A: 〈A〉→〈C〉〈R_1〉、〈C〉→〈A〉〈R_2〉、〈A〉→〈R_0〉の展開を辿ることで「1」「2」「3」の順に生成できるためです。
A: 〈A〉→〈C〉〈R_1〉、〈C〉→〈A〉〈R_2〉、〈A〉→〈R_0〉の展開を辿ることで「1」「2」「3」の順に生成できるためです。
関連キーワード: BNF, 文法解析、非終端記号、文字列生成、正規表現

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

