Regex 证明某种语言是有规律的

Regex 证明某种语言是有规律的,regex,regular-language,Regex,Regular Language,在我的计算理论课上,我们被要求证明某种语言是正则的: Ln={a^(2k+1)| k是n}c{a}的倍数* 我不确定从哪里开始,通常您会使用NFA、DFA、正则表达式或正则语法中的一种。如果有人能帮我找到正确的方向,我们将不胜感激。这里有一些提示可以帮助你开始: 注意Ln={a2nr+1 | r∈N},您可以将其重写为{(a2n)ra | r∈N}。这可能会暴露出您以前注意到的更多结构 如果您想沿着DFA路线走下去,请考虑在每个时间点需要跟踪哪些信息。DFA中的每个状态都应该告诉您到

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

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


我不确定从哪里开始,通常您会使用NFA、DFA、正则表达式或正则语法中的一种。如果有人能帮我找到正确的方向,我们将不胜感激。

这里有一些提示可以帮助你开始:

  • 注意Ln={a2nr+1 | r∈N},您可以将其重写为{(a2n)ra | r∈N}。这可能会暴露出您以前注意到的更多结构

  • 如果您想沿着DFA路线走下去,请考虑在每个时间点需要跟踪哪些信息。DFA中的每个状态都应该告诉您到目前为止看到的字符串的一些信息。请注意,字符串中总共有多少个字符其实并不重要,剩下的部分是多少模n

  • 如果你想沿着正则表达式的路线走下去,你会如何表达“任意数量的a2n拷贝,然后是另一个a”的想法


  • 我不知道这个问题是否适合这个网站(因为它与编程问题没有直接关系),但我会让其他人来决定。我可以说的是,您应该做一些格式化工作,使您的定义更具可读性。