過去問解きまくり研究所 ホーム

平成26年度 春期 午前 問3

基礎理論

BNFに関する問題

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

〔BNF〕

〈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〉
答えと解説を見る

✓ これが正解ア123

解説

各桁の和が 3 の倍数になる並びが生成できます。

設問は、BNF で書かれた規則から生成できる文字列を選ばせています。三桁でも導出の道は多いので総当たりはせず、終端記号の分け方から読むのが近道です。R0 は 0・3・6・9、R1 は 1・4・7、R2 は 2・5・8 で、3 で割った余りごとに数字が仕分けられています。その上で A・B・C の規則を見ると、右辺に並ぶ二つの記号が持つ余りの和が、そのまま左辺の番号になっています。A なら、A に R0 を続ける形で 0 と 0、B に R2 を続ける形で 1 と 2、C に R1 を続ける形で 2 と 1 となり、和はいつも 3 で割り切れます。A は各桁の和が 3 の倍数になる並び、B は余りが 1 の並び、C は余りが 2 の並びを表しているという不変量が見えます。123 は 1 と 2 と 3 を足して 6 ですから A から生成できます。末尾から剥がして確かめると、3 が R0、残る 12 は和が 3 で A、その 2 が R2、残る 1 が R1 で B となり、規則どおりに導けます。

ほかの選択肢はなぜ違うのか

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

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)