c - 寻找一个好的 boolean 代数库

标签 c boolean algebra

我正在编写一个处理一些 boolean 代数的工具。它基本上是一个基于用户定义的文件创建状态机的工具,其中包含状态名称、条件和转换信息。发生状态转换的方法基本上是查看 boolean 逻辑表。例如如果满足以下条件,则从 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,但我不确定是否有 boolean 代数模块。

我的应用程序是用 C 编写的(可能不应该),但任何东西都会有所帮助。

最佳答案

我没有合并代码,而是发现了一些免费供任何使用的优秀应用程序(通过加利福尼亚大学)。一个名为 Logic Friday 的工具对其他一些应用程序有一个很好的前端:misii 和 espresso(包含在安装中),它们执行符号 boolean 代数。

没有很好的命令行界面,但您可以传递文件来完成这项工作。这执行了我正在寻找的最小化。

关于c - 寻找一个好的 boolean 代数库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7586634/

相关文章:

c - 二进制 * 的无效操作数(有 ‘int’ 和 ‘int *’ )

更改函数内变量的值

java - 错误: The type of the expression must be an array type but it resolved to boolean

ios - 将 0-1 值以指数方式映射到快门速度列表

geometry - 如何将一个 3d 笛卡尔坐标系中的坐标转换为另一个 3d 笛卡尔坐标系

c - 缓冲区溢出未生成 shell?

c - 移动窗口实现

ios - UICollectionview 在滚动时更改选择/禁用选择 - iOS

sql - 如何对 SQL 选择执行 boolean 加法

c++ - C++ 代数库