下面给出的两个语法在字母{x,y,z}上生成一种语言
以下哪个选择描述了这些语言的字符串满足的属性?
(A) G1:x之前没有y出现
G2:每个x后面至少跟一个y
(B) G1:在任何x之前没有y出现
G2:在任何y之前没有x出现
(C) G1:x之后没有y
G2:每个x后面至少跟一个y
(D) G1:x之后没有y
G2:每个y后面至少跟一个x答案: (A)
说明:对于以上问题,我们可以看到,对于所有选项,可以将字符串满足的属性定义为x和y字母之间的某种关系。
对于语法1 ,只能使用以下形式的语法生成形式来生成包含x和y的组合的字符串。
S–> xS –> xyB或
S–> zS–> zxS–> zxyB
(如果开始生产是S–> x | z | yB,则不能在字符串同时给出x和y)
因此,在具有x和y的任何字符串,在将x描述为语言的字符串所满足的属性之前,y都不会出现。类似地,对于语法2 ,可以使用以下命令生成同时包含x和y的字符串
仅语法的形式。
S–> yS –> yxB–> yxy或S–> yS –> yxB–> yxyB
S–> xB –> xy或S–> xB –> xyB
因此,在具有x和y的任何字符串,每个x后面都至少跟一个y可以描述为该语言的字符串所满足的属性。
该解决方案由Yashika Arora提供。
这个问题的测验