2.14 构造一个DFA,它接受Σ = {0,1}上能被5整除的二进制数。

陈介平 PB14209115

编译原理作业题,题目如上,另老师还要求写出能被5整除的二进制串的正规式。

解析:

首先分析题目可知,一个数除以5,其余数(十进制)只能是0,1,2,3,4五种,因此我们以0,1,2,3,4分别表示这五种状态。因为要求得能被5整除的数,0 mod 5=0满足要求,故状态0既为初始状态,又为终结状态。

接着,考虑二进制数在其串后增添0或1时,状态的转化情况。在二进制串后添1位,即可理解为将先前的串值乘以二再加上所添的数值。那么,串尾添数后新的数值模5的余数便可以计算出来。即可以得到添0或1后的新的状态。

下面根据分析列出状态转换表:

状态添0添1
001
123
240
312
434
根据状态转换表,可以绘制出DFA如下图所示:



再根据上面的DFA可以得出正规式如下:

{1 [ ((00|1)(01)*01*0)* (0|11) (01)* ] 1}* 0*


笔者水平有限,本文仅供参考,如有意见欢迎指导。 原创文章,未经授权禁止转载。谢谢!

  • 39
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值