最小化布尔表达式的quine-mccluskey算法的实现。

minbool的Python项目详细描述


minbool是一个用于最小化布尔表达式的小型库。它做到了 使用quine-mccluskey算法。

简化表达式

>>> import minbool
>>> result = minbool.simplify("A and not C or A and C")
>>> result
<minbool.ASTBooleanExpression object at 0xb723606c>
>>> result.ast()
<_ast.Name object at 0xb722ef2c>
>>> str(result)
'A'

合成表达式

< >从现有的合成布尔表达式有时是有用的。 功能:

>>> def f(A, B, C, D):
...     return A if B else C or D
...
>>> result = minbool.synthesize(f, 'A', 'B', 'C', 'D')
>>> result
<minbool.BooleanExpression object at 0xb72361cc>
>>> str(result)
'(not(B) and D) or (not(B) and C) or (A and B)'

命令行使用

minbool egg安装一个控制台脚本:“simplify”:

$ simplify A and B or A and C and not C
(A and B)

性能

性能是大o指数。在每种情况下都会构造一个truthtable, 其中行数为2**n,其中n是 表达。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是安卓的子类。所容纳之物ClipData或ClipData。项目   毕加索中的java错误get()无法应用于(安卓.content.Context)   管道接受来自控制台和管道文本文件的Java输入   Java Windows文件权限   java如何在Selenium中找到此按钮?我尝试了partiallinktext并多次尝试cssSelector   java如何在spring jdbc模板中生成流式sql?   方法中的java全局值变为null   java设备“Mobile Intel(R)4 Series Express芯片组系列”(\\.\DISPLAY1)初始化失败:   java查找单独文件夹中的资源到类文件   java iCal4j添加会议说明   java如何处理InvalidTokenException?   oop如果Java不支持运算符重载,增量运算符如何在整数实例上工作?   java如何在Hibernate中获取<map>