原文:DFA到等价正则表达式的转化

思考题的引入 首先看这样一道思考题: 如何用正则表达式识别所有是三的倍数的二进制串 考虑最暴力的做法。用一个变量rem表示一个串的前缀作为二进制对 的余数,对新进来的字符讨论: 进来一个 ,则rem rem lt lt ,因为我们是从高位向低位读的 进来一个 ,则rem rem lt lt 那么只需要判断最终rem是否为 就好了 自动机的做法 在做这题之前,可以先想想这样的一个问题: 如何用自动机 ...

2021-08-20 11:42 0 304 推荐指数:

查看详情

正则表达式到 NFA 到 DFA 到最简 DFA (二)

正则表达式到 NFA 到 DFA 到最简 DFA (二) NFA $ \rightarrow $ DFA (子集构造法) 这里我们用一个例子来解释。 如上图所示,这是上一篇文章中的正则表达式化成的 NFA,这里拿来接着用。 我们首先看开始状态 n0。n0 在接收了一个字符 a 之后 ...

Tue Aug 27 18:16:00 CST 2019 0 1097
正则表达式-NFA-DFA-化简DFA

  原本我也是学习如何将正则表达式一步步化到DFA,搜索发现很多不是死板的定义,就是跨度太大,所以我决定用一道例题,看看它是如何转化的,本次以正则表达式:(a|b)*(aa|bb)(a|b)* 为例。   我看到和多人会介绍将正则表达式转化为NFA的规则,为了便于理解我也选择简单说一下 ...

Wed Jan 05 22:40:00 CST 2022 0 1923
正则表达式到 NFA 到 DFA 到最简 DFA (一)

正则表达式到 NFA 到 DFA 到最简 DFA (一) (博客园这个 markdown 编辑器竟然不支持 LaTeX……无语) 发现了启用数学公式的选项……错怪博客园了…… RE → NFA (Thompson 算法) 这一步是基于对正则表达式的结构做归纳:对基本的 RE 直接构造 ...

Tue Aug 27 05:04:00 CST 2019 0 1327
DFA 简易正则表达式匹配

  一个只能匹配非常简单的(字母 . + *)共 4 种状态的正则表达式语法的自动机(注意,仅限 DFA,没考虑 NFA):   好久之前写的了,记得有个 bug 一直没解决... #include <iostream> //#include <fstream> ...

Thu Nov 28 00:24:00 CST 2019 0 321
正则表达式 有穷自动机 无穷自动机转化 RE NFA DFA

三者关系如下: 首先是RE转NFA: 方法就是进行正则表达式的拆分 下面进行NFA转换DFA 主要是写出转化表,用新的状态集合 下面是-NFA转化DFA 这里的转化表中,是通过具体输入串后,通过E可以达到的所有状态 ...

Sat Jun 27 20:05:00 CST 2020 0 549
正则表达式到 NFA 到 DFA 到最简 DFA (三)(结束)

正则表达式到 NFA 到 DFA 到最简 DFA (三) DFA $ \rightarrow $ 最简 DFA (Hopcroft 算法) 这是一个基于等价类的算法。 这里的等价类,通俗来说就是根据某些特征来划分状态。比如某些状态,都是接收状态,就可以被分为一类。某些状态都是非接收 ...

Tue Aug 27 19:47:00 CST 2019 0 451
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM