平成26年度春期 問3 / 80

平成26年度 春期 応用情報技術者試験 午前 問3

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

<R0> ::= 0 | 3 | 6 | 9
<R1> ::= 1 | 4 | 7
<R2> ::= 2 | 5 | 8
<A>  ::= <R0> | <A><R0> | <B><R2> | <C><R1>
<B>  ::= <R1> | <A><R1> | <B><R0> | <C><R2>
<C>  ::= <R2> | <A><R2> | <B><R1> | <C><R0>

キーボード:1〜4 で解答 → 次の問題 ← 前の問題

正解と解説を見る

正解:ア

〈R0〉,〈R1〉,〈R2〉は3で割った余りが0,1,2の数字です。〈A〉,〈B〉,〈C〉の規則を見ると,

  • 〈A〉: 3で割った余りが0の数(余り0に余り0の数字を続ける,余り1に余り2を続ける,余り2に余り1を続ける)
  • 〈B〉: 3で割った余りが1の数
  • 〈C〉: 3で割った余りが2の数

を表しています(末尾に数字を付けると,余りは「元の余り × 10 + 数字」を3で割った余り,つまり「元の余り + 数字」の余りになります)。したがって,〈A〉から生成されるのは3の倍数です。

実際に123を追うと,「1」は〈B〉,「12」は〈B〉〈R2〉なので〈A〉,「123」は〈A〉〈R0〉なので〈A〉となります。

  • ア: 123
    正しい。123 = 3 × 41 で3の倍数なので,〈A〉から生成されます。

  • イ: 124
    誤り。124 を3で割ると余り1なので,〈B〉から生成される文字列です。

  • ウ: 127
    誤り。127 を3で割ると余り1なので,〈B〉から生成される文字列です。

  • エ: 128
    誤り。128 を3で割ると余り2なので,〈C〉から生成される文字列です。


答え

ア: 123

出典:平成26年度 春期 応用情報技術者試験 午前 問3

平成26年度春期の他の問題