戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2017年 秋期 午前202


問題文

次の BNF において非終端記号〈A〉から生成される文字列はどれか。  

選択肢

123(正解)
124
127
128

BNFによる文字列生成問題【午前2 解説】

要点まとめ

  • 結論:非終端記号〈A〉から生成される文字列は「123」である。
  • 根拠:〈A〉は〈R_0〉、〈B〉〈R_2〉、〈C〉〈R_1〉など複数の規則を持ち、数字の組み合わせを解析すると「123」が生成可能。
  • 差がつくポイント:BNFの展開順序と非終端記号の定義を正確に理解し、各規則の数字集合を正しく把握することが重要。

正解の理由

〈A〉は以下の4つの生成規則を持ちます。
  1. 〈R_0〉:0,3,6,9
  2. 〈A〉〈R_0〉:〈A〉の文字列に0,3,6,9を付加
  3. 〈B〉〈R_2〉
  4. 〈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〉の規則に合致します。

よくある誤解

  • 〈A〉が単に〈R_0〉の数字だけを生成すると誤解しがちです。
  • 〈B〉や〈C〉の定義を無視して数字の組み合わせを考えると誤答になります。

解法ステップ

  1. 〈R_0〉、〈R_1〉、〈R_2〉の数字集合を確認する。
  2. 〈A〉の生成規則を読み解き、どの非終端記号がどの数字を生成するか把握する。
  3. 〈B〉と〈C〉の定義を展開し、それぞれが生成可能な数字を確認する。
  4. 選択肢の数字列が〈A〉から生成可能かを検証する。
  5. 生成可能な文字列が「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〉を利用し、数字の組み合わせを広げています。
Q: どうして「123」が生成可能とわかるのですか?
A: 〈A〉→〈C〉〈R_1〉、〈C〉→〈A〉〈R_2〉、〈A〉→〈R_0〉の展開を辿ることで「1」「2」「3」の順に生成できるためです。

関連キーワード: BNF, 文法解析、非終端記号、文字列生成、正規表現
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について