两种语言的交集是什么?

时间:2017-02-16 18:03:46

标签: union intersection formal-languages automaton

鉴于语言

L1={anb2m|n,m≥1}
L2={anb3n|n≥0}

L = L1 ∩ L2

我知道L1是常规语言,L2可以由PDA代表。

但我不明白答案说明L{a2nb6n|n≥1}。这个解决方案是如何计算的?

1 个答案:

答案 0 :(得分:4)

语言只是一组(有效字符串),所以我们这里只是整数算术中的一个简单问题。只需要删除正式语言的优雅服装以达到问题的本质。

L1L2这两个集都是{acount(a)bcount(b)|j,k≥0}的子集;也就是说,它们由一些 a 组成,后跟一些 b s。 L1的条件将count(b)限制为正数偶数,因为某个整数2m必须为m≥1L2的条件将count(b)限制为3×count(a)

现在,使用谓词定义的两个集合的交集是一组元素,这两个谓词都是真的。因此count(b)必须可被2和3整除,这意味着它必须可被6整除;换句话说,对于某个正整数6n,它必须是n。这意味着count(a)必须是2n,因为 b 的确是正确数量的三倍。这给了你提供的答案。

L2一样,L不常规,但可以使用非常相似的PDA实现。

相关问题