人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

応用情報試験の問題なのですが、解説を見てもさっぱりわかりません。
なぜ、アが正解になるのか。
どなたかわかりやすく教えていただけませんでしょうか。

[問題]
次の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>

[選択肢]
ア:123 イ:124 ウ:127 エ:128

[正解]


よろしくお願いいたします。




●質問者: lph
●カテゴリ:コンピュータ
✍キーワード:BNF 応用情報 文字列 試験 選択肢
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● tomo_k
●27ポイント

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1330882...

http://jwork.g.hatena.ne.jp/tabitetu/20081107/1228063179

このあたりの記事がわかりやすいかと思います。

◎質問者からの返答

お早い回答ありがとうございます。

よくわかりました!


2 ● Mook
●27ポイント

一応ステップを追って説明を書いてみました。


まずすべての選択肢の最初の最初の2文字は12ですから、この文字列を

12?

とすると終端記号を使用して

<R1><R2><??>

と表せます(<??> は <R0>、<R1>、<R2>のいずれか)。



ここで<R1>を終端として持つのは<B>ですからこの形は

<B><R2><??>になります。

ここで定義より

<B><R2> は <A> ですから、当初の形は

<A>::=<A><??>に帰着します

この形を満たすのは<A><R0>だけですので、<??>は <R0> となります。

ですから回答の3番目の文字は<R0>であり、これを満たす回答はアしか存在しませんのでこれが回答となります。

◎質問者からの返答

ありがとうございます。

よくわかりました。


3 ● gotovip
●26ポイント

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1330882...

同様の回答がありますのでとりあえずこちらをどうぞ

以下私の回答もとい追って行き方を補足です


1を生成するにはBをみます

<A> ::= <R0>|<A><R0>|<B><R2>|<C><R1>

<B> ::= <R1>|<R1>|<B><R0>|<C><R2>

<C> ::= <R2>|<A><R2>|<B><R1>|<C><R0>


次に、<B>次の文字2を生成する<R2>がくる物を探します

※文字列は連結しなければならないので、<B>が必要なのです

<A> ::= <R0>|<A><R0>|<B><R2>|<C><R1>

<B> ::= <R1>|<A><R1>|<B><R0>|<C><R2>

<C> ::= <R2>|<A><R2>|<B><R1>|<C><R0>


最後に<A>次の文字3を生成するには<A>の次に3を生成する<R0>がくる物を探します

※前回の文字の生成の後に次の文字を連結なので<B>ではなく<A>が先に来るものを探します

<A> ::= <R0>|<A><R0>|<B><R2>|<C><R1>

<B> ::= <R1>|<A><R1>|<B><R0>|<C><R2>

<C> ::= <R2>|<A><R2>|<B><R1>|<C><R0>


ものすごい大雑把ですがこういうことです

不明な点があればコメントをどうぞ

◎質問者からの返答

ご丁寧な説明ありがとうございます。

よくわかりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ