证明某种语言是正常的

时间:2015-11-18 20:20:51

标签: regex regular-language

在我的计算理论课中,我们被要求证明某种语言是正常的:

Ln = {a^(2k+1) | k是n} c {a} *

的倍数

我不确定从哪里开始,通常你会使用NFA,DFA,正则表达式或常规语法之一。如果有人能帮助我朝着正确的方向前进,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

以下是一些可以帮助您入门的提示:

  1. 请注意,L n = {a 2nr + 1 | r∈N},您可以将其重写为{(a 2n r a | r∈N}。这可能会暴露出您之前注意到的更多结构。

  2. 如果您想沿着DFA路线前进,请考虑在每个时间点跟踪需要哪些信息。 DFA中的每个州都应该告诉你一些你到目前为止看到的字符串。可能有助于注意到字符串中有多少总字符并不重要,只是余数是模数n。

  3. 如果你想沿着正则表达式路线走下去,你怎么表达“任何数量的 2n 副本然后是另一个?”的想法?