応用情報技術者試験 平成29年度秋期 午前 問2「次の BNF において非終端記号 〈A〉 から生成される文字列はどれか。 〈R0…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約60%です。
ア. 123
正答率 60.0%(868人中 521人が正解)
BNF(バッカス記法)は構文規則を定義する表記で,::= の左辺の非終端記号を右辺の並びに置き換えていける(|は『または』)。〈R0〉は3で割り切れる数字{0,3,6,9},〈R1〉は3で割って1余る{1,4,7},〈R2〉は3で割って2余る{2,5,8}という分類になっている点に着目する。〈A〉から生成できるのは末尾を順にたどると『123』だけで,〈A〉⇒〈A〉〈R0〉('3'は R0)⇒〈B〉〈R2〉〈R0〉('2'は R2)⇒〈R1〉〈R2〉〈R0〉('1'は R1)=『123』と導出できるため,アが正しい。