在我的计算理论课中,我们被要求证明某种语言是正常的:
Ln
= {a^(2k+1)
| k是n} c {a} *
我不确定从哪里开始,通常你会使用NFA,DFA,正则表达式或常规语法之一。如果有人能帮助我朝着正确的方向前进,我们将不胜感激。
答案 0 :(得分:1)
以下是一些可以帮助您入门的提示:
请注意,L n = {a 2nr + 1 | r∈N},您可以将其重写为{(a 2n ) r a | r∈N}。这可能会暴露出您之前注意到的更多结构。
如果您想沿着DFA路线前进,请考虑在每个时间点跟踪需要哪些信息。 DFA中的每个州都应该告诉你一些你到目前为止看到的字符串。可能有助于注意到字符串中有多少总字符并不重要,只是余数是模数n。
如果你想沿着正则表达式路线走下去,你怎么表达“任何数量的 2n 副本然后是另一个?”的想法?