我需要学习如何设计DFA,以便给定任何数字'n',它接受二进制字符串{0,1},其十进制等效数可以被'n'整除.
不同的'n'会有不同的DFA,但有人可以给出一个基本的方法,我应该遵循任何数字0 <n <10.
我被要求显示DFA图和RegEx作为RegEx的补充(00 + 1)*.在之前的问题中,我必须证明DFA的补充是封闭的并且也是正则表达式,所以我知道要将DFA,M转换为补码,M`,我只需要交换初始接受状态和最终接受国家.
但是,似乎RegEx的初始接受状态是{00, 1, ^},最终接受状态也是{00, 1, ^}如此.因此,交换它们只会产生完全相同的RegEx和DFA,这似乎是相互矛盾的.
我做错了什么,或者这个RegEx应该没有真正的补充?
谢谢
任何人都可以举例解释有限状态机和有限自动机之间的区别是什么?
绘制minimal的直接简单方法是什么DFA,它接受与给定语言相同的语言Regular Expression(RE).
我知道可以通过以下方式完成:
Regex ---to----? NFA ---to-----? DFA ---to-----? minimized DFA
Run Code Online (Sandbox Code Playgroud)
但是有没有捷径?像(a+b)*ab
我已经根据给定的正则表达式制作了DFA,以匹配测试字符串。在某些情况下.*会发生这种情况。(例如.*ab)。假设现在计算机处于状态1。在DFA中,.*是指所有字符到其自身的过渡, 是指从状态1到a的另一过渡。如果测试字符串包含“ a”,则可能是过渡,因为从状态1开始,计算机可以进入两种状态,这在DFA中是不可能的。