免责声明: 本站资料多数来自网络如有侵权,敬请告知将立即删除!本人对由道客引起的侵权问题不承担法律责任,转发下载资料请于24小时内删除谢谢!下载过程中有問题请联系客服:qq:
版权声明:本文博客原创文章,博客未经同意,不得转载
原创作品出自 “” 博客,欢迎轉载转载时请务必注明出处()。
由于各种原因可能存在诸多不足,欢迎斧正!
编写一个程序模拟最少状态的确定有限自动机,判斷输入串能否识别 |
首先根据某个词法构建最少状态的确定有限自动机,然后输入字符串判断该字符串能否被上述自动机识别。
我们选擇的词法具体形式如下:
我们需要编写一个能识别形如正规式d*(.dd *|ε)(e(+|-|ε)dd*|ε)的无符号数且构建的自动机是最少状态的确定有限自动机。
正则式與有穷自动机具有等价性即
2.对于∑上的一个正规式R,可以构造一个∑上的NFA M使的L(M)=L(R)。
根据选择的词法类型写出它的正则式。
根据正则式構建与之等价的NFA
由于出现+的地方可以出现“-”,出现“-”的地方可以出现“+”所以可以将“+”与“-”等价。
有了上面的DFA然后就是将洎动机在计算机中构建。
好的数据结构能使编程事半功倍我采用的是Trie图。
每个状态定义一个结构体:
相互之间可以转移的状态连边用指针模拟边。
假设处理到operation中第i个字符(从0开始)
*A004 模拟DFA 编写一个程序模拟最少状态的确定有限自动机,判断输入串能否识别 *返回值:DFA的指针 *参数:一个,代表代识别串的引用 *返回值:能识别返回True否则返回false *功能:判断当前字符串能否被识别 *参数:一个,代表代识别串的引用 *功能:输出当前能识别字符串咋DFA中的状态转移版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。