软件设计师_程序设计语言——正规式与有限自动机

正规式

正规式与正规集示例

image-20221018211539144

image-20221018211638375

解析:A选项:a的个数不一定是偶数,因为(a*a)中的*为偶数的且(a*a)*外面的*为奇数的时候,a的个数就是奇数个;
B选项:B选项中的(ab*a)*a的个数就是偶数,不管括号外面的*为多少,都是偶数,答案选B;
C选项:*号分别为1、2、1、1结果a的个数就是奇数
D选项:*号分别为1、1结果都是奇数

image-20221018213350075

解析:A选项:因为ab是连着的,所以*不管为多少,a后面至少跟一个b;
B选项:当括号里面b后面的*为0的时候,a后面就没有b了;
C选项:跟b选项一样b后面的*为0的时候,a后面就没有b了;
D选项:a|b,当都选a的时候,就没b了,所以这个也是错;

image-20221018214104465

解析:由a、b构成的所有字符串中以b结尾的字符串:bab、aab、…
A选项:这个选项有局限性,a的后面只能是b,不满足条件;
B选项:这个选项也有局限性,b后面不能跟a,也不满足条件;
C选项:这个选项也是跟前面两个选项一样,a后面只能是b,不能满足所有情况;
D选项:很明显答案就是D,因为这个前面的括号里面用了a|b,这个情况就包括了多种,满足题意。

有限自动机

有限自动机是词法分析的一个工具,它能正确的识别正规集。

确定的有限自动机(DFA):对每一个状态来说识别字符后的状态是不唯一的。
不确定的有限自动机(NFA):对每一个状态来说识别字符后转移的状态是不唯一的。

例题

image-20221018220020988

解析:选项A:初态也可以是终态,所以a是能够连续出现的;
B选项:对,b后面只能跟a;
C选项:a*(ab)*确实必须以a结尾;
D选项:可以为空串,一开始识别空串的话就可以是空串;

image-20221018220518789

解析:题干中的有限自动机的正规式为a*((a|b)a)*可以为a*a*(ab)*
A选项:A选项中的正规式为a*(ab)*,符合条件,答案为A;
B选项:正规式为ab*a*,不符合条件;
C选项:终态上不是a*
D选项:输入不是在初态或者终态上,不符合条件;

image-20221018222759483

解析:注意是有两个终态;
A选项:0011之后只能跟1,所以是00111是可行的;
B选项:10101到最后是到不了终态的;
C选项:11100是可以的,过程是A->C,C->E,E->E,E->B,B->D;
D选项:1100之后只能跟0,11000是可行的;

image-20221018223600732

解析:题干中的有限自动机可以识别000,也可使识别01*0看选项中哪一个不能识别;
A选项:不对,只能识别两个0;
B选项:也不对,B应该是001*0,是识别两个0之后才能识别若干个1;
C选项:这个是对的,它的正规式就是01*0,所以C选项是正确的;
D选项:正规式是01*00,不对;

image-20221019081603508

解析:A选项:可以包含连续的字符0,初态可以是0*
B选项:跟选项A一样,初态可以是1*
C选项:可以以000、111、010、110开头;
D选项:确实以101结尾,因为该有限自动机的正规式为:(1*|0*)101;

image-20221019082442237

解析:看是不是确定的有限自动机,就要看转移状态是有一种还是一种以上;
M1:在A上可以转移0或者是1,所以M1是不确定的有限自动机;
M2:它的所有状态都是只能转移一种,所以M2是确定的有限自动机;
答案选D,M1是不确定的有限自动机,M2是确定的有限自动机;

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要什么自行车儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值