假设E = {a,b}。令L0 = {(b ^(n))(a ^(2n)):n> = 0}。设L =((NOT OPERATION)L0)
L是常规的,无上下文但不是常规的,或者没有上下文?证明你的答案。
我正在寻找L将会是什么,以及如何以类似的方式描述L0在问题中的描述以及答案。
这个解释对我来说非常重要,如果你想贡献,请具体说明。我希望了解这个材料以进行测试。
非常感谢!
答案 0 :(得分:1)
我会尝试用外行的语言解释你,并提示你将其正式化。
L
是一种包含所有字母E={a,b}
字符串的语言,不在语言L0
中
这不是常规语言。
L
中的字符串是所有以LFA的非最终状态结束的字符串。
但是,由于您无法为L0构建DFA / NFA,因此您也无法获得L的DFA。
原因:在L0
一个未绑定的数字n,需要在查看所有b后存储,然后在检查时使用它,DFA没有内存。
您无法为上述语言编写正则表达式。
使用Pumpping引理L不是上下文无关语言
S = ab
是L中的字符串
使用PL我将分为5部分
S=uvxyz
u="" v=a x="" y=b z=""
现在n=0
新字符串为S(n=0)=""
which is not in L
。
如果我们将ab分成
u="" v="" x=a y=b z=""
现在适用于n=2
S(n=2)=abb
which is not in L
所以L不是CFG。
PS:如果您在m
中发现任何漏洞,请告诉我答案 1 :(得分:0)
我不确定你是否已经学会了抽血马。 但它是一种判断语言是否正常的方法。 请记住,如果L0是常规的,那么L1也是常规的,因为你可以通过交换L0 dfa的最终和初始统计数据来制作L1的dfa。
构建L0的任何一个例子,其中b ^ m a ^ 2m且这个字符串足够大以抽吸lema。
将示例分为三部分xyz。
其中| xy | < m(子串xy中的元素数) 和| y | > = 1。
由于块xy<因为有b ^ m b,所以必须是所有b。
现在让你抽0次。
x y ^ 0 z如果你的lang是bbbaaaaaa并且| y | = 1你的lang变成bbaaaaaa意味着现在它跟随b ^ n a ^ 3n。这使它不是一个正则表达式。
意味着L1不是正则表达式。