G={ {S,A} , {a} , {S -> SAS | a , A -> aS | a} ,S}
在答案部分,其中写道:
L(G) = {a, a3, a4, a6, a7}
和
L(G)的补充写为:{a2, a5, a8, ...}
。
请帮助我了解上述语言及其补充是如何产生的?
我的尝试/分析:
上述语法的字符串应至少为3个(不是?):S-> SAS
,替换S --> a
和A --> a
,我们得到S --> aaa
。但解决方案L(G)
以a
开头。
请帮我理解这个概念,还是我解释错误。
另外,请解释是否有任何标准方法可以从任何语法中找出语言?我google了很多,但找不到一般程序。 提前致谢。 PS-我正准备参加即将到来的竞争考试。
答案 0 :(得分:-1)
对于以下语法G:
G = {{S, A}, {a}, {S -> SAS | a, A -> aS | a}, S}
语言:
L(G) = {a, a3, a4, a6, a7}
不正确无误。
字符串a 5 也是可能的。
a
是可能的,因为有一个作品S --> a
,
S
- 作品
S --> SAS
S --> a
A
- 制作
A --> a
A --> aS
L(G)中的每个字符串都来自S
。要将任何句子形式转换为句子,您必须应用A --> a
或S --> a
,即(奇数长度为1)。
从任何语法中找出语言的conman方法是“按顺序生成树”。 :
要生成大于w
长度的字符串|w| > 1
,您必须使用生产规则S --> SAS
。
T1: T2:
s S
/|\ /|\
/ | \ / | \
S A S S A S
| | | / / \ \
a a a a | | a
a a
4 后的最小可能字符串仅为 5 :
T3:
s
/|\
/ | \
S A s
/ / \ |\
a | | a \
a a a
所以 5 不能用L(G)
的恭维语言。
修改强>
8 的想法:
T4:
s
/|\
/ | \
S A S
/ / \ \
a | | \
a a T2
来自T2的三个a
'+五个a
=八个a
s
语法语言:
L(G)
= {an
|其中n != 2
}
L(G)
的 补充仅为{aa}
!