【发布时间】:2011-04-29 16:56:41
【问题描述】:
有谁知道 C# 中有任何好的 NFA 和 DFA 实现,可能还实现了两者之间的转换?我希望能够构建 NFA,然后将其自动转换为 DFA,但不必编写我自己的代码,这将花费很长时间。有 this Python 代码,也许我可以使用 IronPython 并与 C# 集成,但 Python 很慢。
【问题讨论】:
-
看python代码,转成C#应该比较容易。你考虑过吗?
-
问题是我对Python一无所知...
-
慢是相对的......无论如何,NFA->DFA 算法相当微不足道(通常有一些一般性的警告)并且是许多初级 CS 自动机理论课程的主题——我不得不这样做:) 谷歌上有很多关于“将 NFA 转换为 DFA”的好链接。尤其是与课程有关的那些。它应该少于一天的编码;可能只有一两个小时,而且可能比尝试通过不同的语言跳房子更痛苦。
-
在最坏的情况下,将 NFA 转换为 DFA 的算法在 NFA 状态的数量上呈指数级增长,因此......由于 Python,慢不会成为现象。