Regular language 设计接受特定长度字符串的NFA
我期待着设计一个FA,它接受某种字符串,接受某种a和B 首先是一个字符串,其a的数目比B的数目高五倍 我的意思是Regular language 设计接受特定长度字符串的NFA,regular-language,finite-automata,nfa,Regular Language,Finite Automata,Nfa,我期待着设计一个FA,它接受某种字符串,接受某种a和B 首先是一个字符串,其a的数目比B的数目高五倍 我的意思是L={w∈{A,B}*和(nA(W)-nB(W)mod 5=0) 以及接受字符串中不同字符数的FA: L={A^n B^m C^k | n,k>0 and m>3} 我设计了一些FAs,但它们在这个复杂的字符串上工作得并不完美 关于我应该如何设计这个问题有什么帮助吗?不幸的是,你的问题令人困惑,因为英文文本与数学公式不一致。我将尝试回答以下四个问题: 一种由{A,b}上
L={w∈{A,B}*和(nA(W)-nB(W)mod 5=0)
以及接受字符串中不同字符数的FA:
L={A^n B^m C^k | n,k>0 and m>3}
我设计了一些FAs,但它们在这个复杂的字符串上工作得并不完美
关于我应该如何设计这个问题有什么帮助吗?不幸的是,你的问题令人困惑,因为英文文本与数学公式不一致。我将尝试回答以下四个问题:
- 一种由{A,b}上的字符串组成的语言,其中A(#A(w))的数目为
是b的五倍(#b(w)),
NFA无法做到这一点。通过使用带有字符串a^pb^5p的泵送引理(p.L),证明很简单,其中p是p.L的常数L={w in{a,b}*:#a(w)>#b(w)和#a(w)=#b(w)mod5}
- 对于语言:
你写的, 您可以使用由5个状态组成的周期的DFA来实现这一点 转换是,如果你读a顺时针,如果你读b逆时针。随机选择一个状态作为初始状态,相同的状态将成为最终状态L={w∈{A,B}*:(nA(W)-nB(W))mod 5=0}
- 对于语言L={A^nb^mc^k|n,k>0和m>3},应该很容易找到
如果你把L理解为
L=A(A)*B(B)*c^4(c)*
- 对于接受字符串中不同字符数的语言(比如a,b)。语言应该是
同样,NFA无法识别该语言。如果该语言是常规语言(由NFA识别),则该语言也是:R={w in{a,b}*:#a(w)不等于#b(w)}
。语言L是L=a*b*交集(R补码)
语言L是大多数书中第一个涉及非规则语言的例子{a^n b^n/n非负整数}
希望这个答案对您有所帮助。下面是第二种情况的一个简单正则表达式:
AA*BBBBB*CC*
。第一种情况最简单的实现方式是使用下推自动机(状态机+堆栈)而不是FSM。(事实上,我认为在无限长的字符串上使用FSM是不可行的,因为所需的状态数将增长到无穷大,但我必须通过推导来确定。)实际上,nA(W)-nB(W)mod 5=0
似乎暗示nB(W)
可能大于nnA(W)
还有,我能不能为他们设计一个FA?我被困在这里面了!!!