我正在编写一个处理一些布尔代数的工具。它基本上是一个基于用户定义文件创建状态机的工具,该文件包含状态名称,条件和转换信息。发生状态转换的方法基本上是查看布尔逻辑表。例如在以下情况下从State1过渡到State2:
(A & B) | (C & ~D) | (E)
我已经实现了这一切,但是现在我需要添加能够做一些有趣的事情,比如反转整个shebang:
~((A & B) | (C & ~D) | (E)) = (via DeMorgan) (~A & ~C & ~E) | (~A & D & ~E) | (~B & ~C & ~E) | (~B & D & ~E)
结果必须在Disjunctive Normal Form。
基本上,我不想自己写这个,我希望有一个知道如何处理这样的东西的库。我遇到过SymPy,但我不确定是否有布尔代数模块。
我的应用程序是用C语言写的(可能不应该),但任何事情都会有所帮助。
答案 0 :(得分:1)
我找到了一些免费供任何使用的优秀应用程序(通过加州大学),而不是合并代码。一个名为Logic Friday的工具有一个很好的前端到一些其他应用程序:misii和espresso(包含在安装中),执行符号布尔代数。
没有很好的命令行界面,但您可以传递文件来完成这项工作。这执行我正在寻找的最小化。
答案 1 :(得分:0)
你可以尝试这个开源项目,虽然它不是一个库你可以复制Boolean Algebra Class来添加到你的项目