我无法理解简单的问题。我必须指出以下语法 字
a)(ab)^2i c, i>=1
ababc
,表示i = 1 ababababc
S -> abA
A -> ab | abc | c
b)a^(m-1) b^(m+1) a^n b^n, m>=1 n>=1
bbab
,表示i = 1 abbbaabb
S -> AbbAaAb
A -> ba | ab | a
有人可以查看这些练习并给我反馈。我做错了什么?
答案 0 :(得分:1)
第一个会生成(ab)^i
,您只需要在单词中偶数ab
对,因此您必须将其定义为
S -> ababA
A -> ababA | c
您还必须在第二条规则的右侧使用A
,因为您的规则会创建一个最大长度为5的单词。
第二个
S -> AbbB
A -> aAb | epsilon (empty string)
B -> aAb
对于单词的第一部分,您始终需要bb
在右侧。您从中生成a^n b^n
。
对于单词的第二部分,我们重复使用非终结A
,但我们确保单词部分中至少有一个ab
- 这就是为什么{ {1}}。