Kleene star语义和集合比较

时间:2018-10-06 22:58:24

标签: algorithm math set regular-language kleene-star

假设我们有两种语言L1和L2,以下条件是否被认为是错误的?

(L1L2)* = L1*L2*

我之所以这样假设是因为

条件的左侧:

L1 = {a,b}
L2 = {c,d}

C = L1.L2
C = {ac,ad,bc,bd}

C* = {empty, 'acad','adbc','bdac',...}

条件的右侧

L1 = {a,b}
L2 = {c,d}

L1* = {a,b,aa,ab,ba,bb,...}
L2* = {c,d,cc,cd,dc,dd,...}

C = L1*.L2*

因此,C内的任何元素c都不能带有诸如“ adbc”之类的组合,这可以在参数的左侧显示,因此原始参数为false。

这种方法有效吗?

1 个答案:

答案 0 :(得分:2)

我无法遵循您的证明,但是如果L1={a}L2={b},则(L1L2)*包含abab,而L1*L2*没有。所以它们不相等。