2016-06-17 8 views

答えて

0

これはトリックを行うべきだと思います。 http://mdaines.github.io/grammophone/でこれを確認しました。
S - > a B c c | a S c c | 。
B - > b B | 。

+0

[本質的にリンクからなる回答を投稿しない](http://stackoverflow.com/questions/how-to-answer)ください。あなたの答えに重要な点を含めてください。追加情報や参考資料としてリンクを張ってください。 – techspider

+1

あなたの周りのケースを慎重にしてください。例えば、bの文字列だけを生成することはできません。答えは、あなたがここにどのように到着したかについてのいくつかの議論の恩恵を受けるでしょう。 – Patrick87

+0

私はこの問題の初心者でもあり、オーバーフローをスタックすることもあります。私を修正していただきありがとうございます。私の回答を編集するか、私の解決策が間違っている理由を説明する必要がありますか? –

0

私は、小さな文字列から大きな文字列を作成する方法のいくつかの規則を思いつくために、常にこの種の質問に役立つことがわかります。まず、あなたの言語でlittlest文字列を識別します。私たちの場合、n = 0の場合、b^mは私たちの言語であるという観測から始めることができます。つまり、b *の中のwは私達の言語です。 xが私たちの言語の文字列であれば、右にaを1つ追加して別の文字列を取得します。つまり、axccは私たちの言語の文字列です。だから、私たちのルールは以下のとおりです。L

    1. のb * xの場合はLで、その後CFGの面でこれを書いLでaxcc

    が今簡単です。

    S -> B 
    S -> aScc 
    

    ここでSは言語Lを生成し、Bは言語b *を生成する。

    (1) S -> B 
    (2) S -> aScc 
    (3) B -> e 
    (4) B -> B 
    

    任意の列A^NB^MC ^ルール2のn個のアプリケーションを使用して生成することができる2N、ルール1つのアプリケーション、m個のアプリケーション:我々は、開始シンボルBとb *のための文法を提供することによって、文法を完了しますルール4のルール1の適用と1のルール3の適用。この文法は言語に含まれない文字列を生成しないということは、練習問題として残されている。

  • 関連する問題