平成29年度秋期 問2 / 80

平成29年度 秋期 応用情報技術者試験 午前 問2

次の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〉 は「数字列を整数とみたときに 3 で割った余りが 0、1、2 であるもの」を表しています。例えば 〈A〉 ::= 〈B〉〈R2〉 は、余り 1 の数の後ろに余り 2 の数字を付けると(10 倍しても 3 で割った余りは変わらないので)余りが 1 + 2 = 3 → 0 になることに対応しています。

つまり、〈A〉 から生成されるのは 3 で割り切れる数 です。3 で割り切れるかどうかは各桁の和で判定できます。

選択肢の検討

  • ア: 123
    正しい。123 は各桁の和が 6 で 3 で割り切れるので 〈A〉 から生成できます。実際に、1(〈R1〉なので〈B〉)→ 12(〈B〉〈R2〉なので〈A〉)→ 123(〈A〉〈R0〉なので〈A〉)となります。

  • イ: 124
    誤り。124 は各桁の和が 7 で、3 で割った余りが 1 なので 〈B〉 から生成される文字列です。

  • ウ: 127
    誤り。127 は各桁の和が 10 で、3 で割った余りが 1 なので 〈B〉 から生成される文字列です。

  • エ: 128
    誤り。128 は各桁の和が 11 で、3 で割った余りが 2 なので 〈C〉 から生成される文字列です。


答え

ア: 123

出典:平成29年度 秋期 応用情報技術者試験 午前 問2

平成29年度秋期の他の問題