软考---有限自动机
考察形式
给出一个确定或不确定的有限自动机,指出其能够识别的字符串,或指出对应的正规式表示。
有限自动机识别字符串
一个有限自动机所识别的语言是从开始状态到终止状态所有路径上的字符串的集合。要判断一个字符串能否被指定的自动机识别,就看在该自动机的状态图中能否找到一条从开始状态到达终止状态的路径,且路径上的字符串等于需要识别的字符串。而对于其正规式,可以通过能够识别的字符串去总结规律。
例:下图所示的有限自动机中,s0是初始状态,s3为终止状态,该自动机不能识别()。
A.abab B.aaaa C.babb C.abba
只有A选项可以从Sn到达S3中去。
例:右图所示有限自动机的特点是()。
A.识别的0、1串是以0开头且以1结尾
B.识别的0、1串中1的数目为偶数
C.识别的0、1串中0后面必须是1
D.识别的0、1串中1不能连续出现
选D。
[解析] 从初始态q0输入0仍然到q0或者输入1到达终态q1,从q1还可以输入0重新到达初始态q0,所以这个有限自动机识别的0、1串不一定是以0开头的,1的数目的奇偶性也没办法确定,0后面也可以是0,所以选项A、B、C都是错误的。从q0输入1到达终态q1后,或者串结束,或者输入0再到q0,所以这个串中的1不会连续出现,选项D是正确的。
正规式
例:由a、b构造且仅包含偶数个a的串的集合用正规式表示____。
A.(a*a)*b* B.(b* (ab*a)*)* C.(a* (ba*)*b)* D.(a|b)* (aa)*
A中*表示0个或者n个,那么可以A可以表示ab。
B中b可以0个或者n个,但是一定是两个a的倍数,选B。
例:在仅由字符 a、b 构成的所有字符串中,其中以 b 结尾的字符串集合可用正规式表示为(21)。
A.(b|ab)*b B.(ab*)*b C.a*b*b D.(a|b)*b
解析:正规式(a|b)*对应的正则集为{ε,a,b,aa,ab,...,所有由a和b组成的字符串},结尾为b。
例:由字符a、b构成的字符串中,若每个a后至少跟一个b,则该字符串集合可用正规式表示为(48)。
(48)A.(b|ab)* B.(ab*)* C.(a*b*)* D.(a|b)*
解析:正规式中 |表示或的意思, *表示 *前的字符或字符串出现了 0 次或多次。因此,选择A。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效