作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我试图通过使用 thompsom 的构造将 ((c|a)b*)* 转换为 nfa,但我理解了一些错误,因为结果不是它应该的结果。如果您能指出我的错误,我将非常高兴。汤普森的构造规则:
6)对于所用字母数字的特定字符,一个状态最多可以有 1 个传入和 1 个退出转换。
第 1 步:我为每个角色创建了 NFA
第 3 步:然后我创建了 b*
第 4 步:然后我组合 c|a 和 b* 来创建 (c|a)b*
与正确解决方案的不同之处在于,在最后一个 nfa 中(示例没有显示步骤,最后状态重新编号)没有 s9。所以 S8 ε-transists 到 S5 和 S5 ε-transists 到 S10。如果 b* 没有 S9 状态但由于规则 2 需要它,这对我来说是有意义的。所以我想我在连接过程中犯了一个错误。提前谢谢你。
最佳答案
规则 2 说任何东西都不能进入 S11,这里不相关。连接时(第 4 步),S8 和 S9 应该已经合并。
来自维基百科,
The concatenation expression st is converted to
关于regex - RE 到 NFA Thompson 的构造步骤 ((c|a)b*)*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39457557/
我是一名优秀的程序员,十分优秀!