2

私はこの問題を解決しようとしています (私はそれを解決したかもしれないと思います): http://d.pr/i/L5Qm

L = {a 3n b 2n | n >= 0}

基本的に問題は、l等しいmm等しくないと言っていることですn

私が生成したルール:

S -> aaaSbb | A
A -> a | ^

いくつかのテスト:

Test one: S --> aaaSbb -> aaaAbb -> aaabb
Test two: S --> A -> a
Test three: S --> A -> ^

テストできることは他にもたくさんあると思いますが、これらの問題にまったく慣れていないため、大部分の問題をテストする方法がよくわかりません。助けてくれてありがとう。

4

1 に答える 1

2

あなたのテスト2:

Test two: S --> A -> a

あなたの文法が間違っていることを明確に示しています!

あなたの言語で:

L = {a 3n b 2n | n >= 0}

常に 2 つaにつき 3 つbあり、aL 言語ではありません。

あなたの言語の正しいプロダクションは次のとおりです。

S ---> aaaSbb | ^

^ヌル記号はどこにありますか。お知らせ^も言語でnできますのでご了承0ください。

編集

あなたの文法:

S -> aaaSbb | A
A -> a | ^

2 つの言語の結合を生成します。つまり、次のようになります。

{a 3n b 2n | n >= 0} U {a 3n+1 b 2n | n >= 0}

余分な部分 a 3n+1 b 2nA--> a生産によるものです。

于 2013-04-15T16:45:48.867 に答える