形式化语言
有限状态自动机DFA
题目
- 给出接受以下语言的DFA:所有以1开头,能被5整除的二进制串,如101,
1010, 1111
首先分析题目可知,一个数除以5,其余数(十进制)只能是0,1,2,3,4五种,因此我们以0,1,2,3,4分别表示这五种状态。因为要求得能被5整除的数,0 mod 5=0满足要求,故状态0为终结状态。
接着,考虑二进制数在其串后增添0或1时,状态的转化情况。在二进制串后添1位,即可理解为将先前的串值乘以二再加上所添的数值。那么,串尾添数后新的数值模5的余数便可以计算出来。即可以得到添0或1后的新的状态。
另外,题目要求以1开头,则以1为初始状态,进行添0添1操作,最后闭合在五个数中。
状态 | 添0 | 添1 |
---|---|---|
1 | 2 | 3 |
2 | 4 | 0 |
3 | 2 | 1 |
0 | 0 | 1 |
4 | 3 | 4 |