algorithm - Kleene 星语义和集合比较

标签 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”之类的组合,这可以在参数的左侧证明,因此原始参数为假。

这种方法有效吗?

最佳答案

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

关于algorithm - Kleene 星语义和集合比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52684046/

相关文章:

javascript - 如何根据 Javascript 中的动态网格大小生成网格坐标?

python - 哥德巴赫猜想 - 找出偶数可以写成两个素数之和的方式的数量

Java:使用弱引用堆栈

c# - 在什么情况下锯齿状阵列优于普通矩形阵列?

algorithm - 使用基于整数除法的例程进行计数 - 是否有公式化方法?

javascript - 在数组中查找第一个重复项并返回最小索引

swift - 在 Swift 中通过属性名称获取一组对象中的一个对象

java - 通过从每个集合中取一个值来计算一对的集合

javascript - 如何仅使用一个变量反转字符串

c# - 反转字符串数组的元素