math - 这种语言与自身的串联是什么?

标签 math regular-language finite-automata automata formal-languages

鉴于以下语言:

L1 = { (ab)n | n ≥ 0 }



即,L1 = { ε ab, abab, ababab, abababab, ... }
问题是找什么语言L12是。

我的猜测是它等于 { (ab)2n | n ≥ 0 } .那是对的吗?如果是,我如何证明?如果没有,为什么不呢?

谢谢!

最佳答案

语言 L12 是形式为 xy 的所有字符串的语言,其中 x ∈ L1 和 y ∈ L1。请注意,x 和 y 不必是相同的字符串;他们可以独立选择。

事实上,一种选择是 y = ε,因为 ε = (ab)0。因此,L1 中的任何字符串也必须属于 L12,因为我们总是可以将该字符串与 ε 连接起来。

此外,我们可以证明 L12 中的任何字符串也在 L1 中。取任何字符串 w ∈ L12。对于某些字符串 x, y ∈ L1,它必须具有 xy 形式。这意味着我们可以为一些自然数 n 和 m 写出 w = xy = (ab)n(ab)m。因此,w = (ab)n+m,所以在 L1 中 w。

我们刚刚证明了 L1 ⊆ L12 和 L12 ⊆ L1,由此我们得到 L1 = L12。这意味着 L12 与 L1 是相同的语言。

希望这可以帮助!

关于math - 这种语言与自身的串联是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19603504/

相关文章:

automation - 为什么 L={wxw^R| w, x 属于 {a,b}^+ } 是正则语言

finite-automata - DFA 可以有 epsilon/lambda 转换吗?

c - C 的自动 FSM

c++ - 从源开始,在 C++ 中找到最接近网格上目标的下一个点

javascript - 基于用户输入的价格计算 React JS

regex - 通过给出正则表达式来证明语言是正则语言

java - 如何忽略文本中的值?

c++ - dfa 转换函数

math - 如何量化表面法线

java - 如何计算两个 vector 之间的间距?