形式语言和自动机总结----正则语言RE

news2024/11/23 12:27:49

第3-4章正则表达式

正则表达式的设计举例

 正则表达式的运算

正则表达式的优先级

举例

1.倒数第三个字符是1

               (0+1)*1(0+1)(0+1)

2.不含有连续的0

                (1+01)*(0+\varepsilon

3.含有000

                (0+1)*000(0+1)*

4.不含000/111的正则语言(/代表两个式等价的)

                (1+01+001)*(\varepsilon+0+00)  / 1*(01^{+}+001^{+})

DFA\Leftrightarrow正则表达式

 为什么要引入:有的时候我们做设计正则表达式习题的时候发现直接想很困难,我们不如利用正则表达式和DFA之间的等价性,构造出DFA,进而构造正则表达式。

1.设计不含001/110的正则表达式

 2.设计不含010/101的正则表达式

方法1:直接猜测法:

0^{*}(1+000^{*})0^{*}

方法2:DFA转正则表达式

 3.设计不含001/110的正则语言

4 . L = { w∈{0,1}* | w contains both 01 and 10 as substrings }

这个题的出错点在于可能忘记考虑010 101的情况

分类相加的方法:

(0+1)^{*}01(0+1)^{*}10(0+1)^{*}+(0+1)^{*}10(0+1)^{*}01(0+1)^{*}+(0+1)^{*}010(0+1)^{*}+(0+1)^{*}101(0+1)^{*}

直接的方法 :合并情况的方法

(0+1)^{*}(100^{*}1+011^{*}1)(0+1)^{*}

5.The set of all strings with an equal number of 0's and 1's, such that no prefix has two more 0's than 1's, nor two more 1's than 0's. 

                                        (01+10)^{*}

6. Let L={ w | w∈{0,1}* and if there are two 0s of w, they must be separated by 1 or 11 }

 1^{*}(0+\varepsilon )(110+10)^{*}1^{*} or 1*(01+011)^{*}(0+\varepsilon)^{*}

                             |11  | 11 |

explaination : 1^{*}0 | 10 | 10 |................................

7.设计(a+b)*的文法

S\rightarrow SaS|SbS|\varepsilon

 正则语言的性质

泵引理老师上课也讲了 不少,感觉上课再看看书上的例题熟悉一下思路基本就没问题了,后面PDA那里也有一个泵引理,不过考试还是喜欢正则语言的泵引理。我自己的感觉是取语言中的一个串,如果不符合那么这个语言就不是正则语言。

1.证明泵引理

  • 往多泵
  • 往少泵
  • 利用语言的封闭性证明:if L_{1} L_{2}都是正则语言L = L_{1}\cup /\cap /\setminus L_{2},或者其反转L^{R}也是正则语言,如果不是正则语言那么L不一定不是正则语言。

具体实例见第四章习题,一般的方法是取语言中的子串。利用语言中的一个元素不是正则来确定不是正则语言。 

 1.证明回文字符不是正则语言:

2.Prove that L = {a^{i}b^{j}c^{k}|i + j = k |is not regular with pumping lemma.}

 3.

4.

5. 取0的N次方 1的N次方

6.The set of strings of 0’s and 1’s whose length is a perfect square. 

0^{m}1^{n} \,\,m+n=N^{2} 利用放缩

7.The set of strings of 0’s and 1’s that are of the form ww, that is some string repeated.

0^{N}1^{N}0^{N}1^{N} 证明不是正则语言。

 

2.利用封闭性的泵引理证明:

1.The set of strings of the form 0^{i}1^{j}such that the greatest common divisor of i and j is 1.

设L={0^{i}1^{j}|gcd(i,j)=1} L'=\overline{L}\cap0*1*={0^{i}1^{j}|gcd(i,j)>1}

如果L是正则语言那么L的反转也是正则语言,取0^{N}1^{N}(N不是素数)由泵引理,0^{N-m}1^{N}不和题意 

2.

2.DFA的最小化:

NFA转正则语言

其实是一个递归算法:

正则语言转\varepsilon-NFA

规则翻课件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/425626.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法LearnNO.1】算法介绍以及算法的时间复杂度和空间复杂度

目录 一、算法 1、算法概述 2、算法的5个特性 3、设计算法的标准 二、时间复杂度 1、时间复杂度的介绍 2、渐进时间复杂度的求法 3、计算时间复杂度的代码举例(平方阶示例) 4、时间复杂度排序 三、空间复杂度 一、算法 1、算法概述 算法就是解…

蔚来试水辅助驾驶订阅,NOP+能否吃蟹?

作者 | 德新 编辑 | 王博2021年的NIO Day上,随着当时ET7发布,蔚来最早宣布了智能驾驶订阅服务:NAD,月费680元。 两年后,辅助驾驶订阅模式终于开始落地:蔚来将从7月1日起,对NOP进行收费&#xff…

Nginx基础教程

Nginx 目标 Nginx简介【了解】 Nginx安装配置【掌握】 一、Nginx简介 Nginx称为:负载均衡器或 静态资源服务器:html,css,js,img ​ Nginx(发音为“engine X”)是俄罗斯人编写的十分轻量级的HTTP服务器,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/P…

索引优化、优化,你又是一个好MongoDB!!!博学谷狂野架构师

MongoDB索引优化 作者: 博学谷狂野架构师GitHub:GitHub地址 (有我精心准备的130本电子书PDF)只分享干货、不吹水,让我们一起加油!😄 索引简介 索引通常能够极大的提高查询的效率,如果没有索引&a…

【pg数据库状态监控相关参数展示】

1、最近项目中做了一个postgresql数据库监控状态功能的需求,需求如下图 2、研究好久,终于在pg数据库的官方文档中找到了相关视图参数, 文档连接如下: 数据库基础信息: http://www.postgres.cn/docs/9.3/functions-in…

开源项目:数据库表结构生成文档工具

目录 一、软件介绍 二、技术框架 三、功能介绍 四、代码展示 1、获取数据库信息部分代码 2、导出Html文档代码 五、运行效果 六、项目开源地址 一、软件介绍 今天给大家分享我自己编写的数据库表结构文档生成工具,方便大家在实际开发当中,可以很方便导出…

JAVA常用工具-文件操作相关IO

IO技术在JDK中算是极其复杂的模块,文件管理都依赖IO技术,而且都是编程的难点,想要整体理解IO流,先从Linux操作系统开始, Linux空间隔离 Linux使用是区分用户的,这个是基础常识,其底层也区分用…

【MQTT协议】使用Mosquitto实现mqtt协议(二):编写视频帧的发布/订阅服务

目录一、Mosquitto中的QoS定义QoS1和3区别二、安装base64库三、cjson简介四、主程序代码五、调用Mosquitto库使用的cmakelist更多内容详见 【MQTT协议】使用c实现mqtt协议(Mosquitto源码编译)一、Mosquitto中的QoS定义 MQTT协议中的QoS(Qual…

CLIP论文拜读及理解

文章目录一、clip论文阅读二、prompt1.除prompt之外的预训练语言模型2.prompt2.1. prompt定义2.2. prompt类型2.3. prompt重构2.3.1 prompt template2.3.2 Answer engineering2.4 多个 prompt的使用2.5 prompt的训练总结参考(博文、论文)一、clip论文阅读…

Windows系统安装WSL,并安装docker服务

背景 因为工作需要,要在电脑上执行sh脚本,并启动docker服务执行具体逻辑。因为我的电脑是windows系统,对做本任务来说,比较吃力,所以想到使用wsl,让windows电脑具有linux电脑的能力。 什么是 WSL 2 WSL 2 …

JVM的类加载的过程以及双亲委派模型

目录 1、加载 (加载字节码文件,生成.class对象) 2、验证(验证Class文件是否符合规范) 3、准备 (为静态变量分配内存并设置变量初始值) 4、解析(初始化常量池中的一些常量&#…

索引的分类

1.唯一索引 给表中某一列设置为了唯一约束(这列不允许出现重复数据)后,数据库会为将这一列设置索引,这个索引叫做唯一索引(主键那一列是一个特殊的唯一索引,不仅要满足唯一索引这一列不可以出现重复数据,而且这一列还…

Android opencv

install cmake cpp folder,新建c项目 获取 OpenCV4Android SDK O4A_SDK 下载,并解压 ~/Downloads/OpenCV-android-sdk$ tree -d -L 2 . ├── apk ├── samples │ ├── 15-puzzle │ ├── camera-calibration │ ├── color-blob-detection │ ├…

文件:IO流

1. 什么是IO /O 即输入Input/ 输出Output的缩写,其实就是计算机调度把各个存储中(包括内存和外部存储)的数据写入写出的过程;java中用“流(stream)”来抽象表示这么一个写入写出的功能,封装成一…

Vue学习笔记(7. axios异步请求)

1. axios请求方式 方式1:axios({method:"GET",url:"..."}) 方式2:axios({method:"POST",url:"...",data:"..."}) 方式3:axios.get("url...") 方式4:axios.post(…

Python中的35个关键字

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:零基础入门篇 💬个人格言:不断的翻越一座…

【 Spring MVC 核心功能(二) - 获取参数(下)】

文章目录一、使用 RequestBody 接收JSON对象二、使用 RequestPart 上传⽂件三、获取 Cookie四、获取 Header五、存储和获取 Session5.1 存储 Session5.2 获取 Session一、使用 RequestBody 接收JSON对象 有时客户端会通过 post 方式发送 json 格式的请求,那后端就可…

2.3.5双链表

单链表vs双链表 就是既有前驱指针也有后继指针,由line改为double。 双链表的插入怎么实现? s->nextp->next; p->next->priors s->priorp //把p赋给s的前驱指针指向的位置 p->nexts; 如果p刚好是最后一个元素。 p->next->prio…

基于ArcGIS的电子地图矢量化方法

一、电子地图及纸质地图矢量化的目的 地图数据来源有很多,其中栅格数据数字化是地图数据的重要来源。栅格数据的矢量化包括地理配准以及矢量化。矢量化后的地图数据往往可以为我们的空间统计分析提供实验依据,从而探究地理分布的时空差异性。 空间参考&a…

完整指南:如何安装Man手册

Man手册简介 man手册是Unix和类Unix操作系统中的命令行工具,用于提供关于特定命令、函数和文件的帮助文档。它通常包含命令的语法、选项、参数、示例以及其他相关信息。man手册可以通过在终端输入"man"命令,后跟要查看的命令或函数名称来访问…