【发布时间】:2019-05-10 19:05:32
【问题描述】:
我最近有一个任务,我必须决定语言是否是常规语言,并带有抽引引理。
L1 = {xy ∈ {a, b}∗ : |x| = |y|,要么 x 以 a 开头,y 以 b 结尾,要么 x 和 y 都不是所有 a 的字符串}。
L2 = {xy ∈ {a, b}∗ : |x| = |y|,x 包含子字符串 aa,y 以 b} 开头。
对于这两种语言,假设泵送长度为 n,我提供了字符串 s = (a^n)(b^n),因为它满足“|x| = |y|,x 以 a 开头,y 以 b 结尾” L1 的条件和“|x| = |y|, x 包含子串 aa 并且 y 以 b 开头”条件 L2。所以,s = x(y^i)z,我选择了 x = (a^n-1),y = a,z = b^n。对于任何偶数 i,x(y^i)z 中的总字母数是奇数,因此 s 不在 L1 和 L2 中,因为 |x|不能等于 |y|了。我只是想知道我做得对还是错过了什么?
【问题讨论】:
-
你的证明并不完全正确。您不选择
s = xyz的分解。您需要证明对于xyz的所有分解|xy| = n, |y|>=1,存在一些i使得x(y^i)z不在该语言中。您已经为一个分解展示了这一点 - 您需要为所有分解展示它。 -
谢谢 Welbog,我现在明白了
-
The CS site 或许能更好地帮助你。
-
感谢您考虑 Rishav :)
标签: computer-science automata automata-theory