【发布时间】:2013-11-11 00:39:39
【问题描述】:
我需要解决一组符号布尔表达式,例如:
>>> solve(x | y = False)
(False, False)
>>> solve(x & y = True)
(True, True)
>>> solve (x & y & z = True)
(True, True, True)
>>> solve(x ^ y = False)
((False, False), (True, True))
此类变量的数量很大(~200),因此暴力策略是不可能的。我在网上搜索,发现Sympy 和Sage 具有符号操作能力(特别是this 和this 可能有用)。我该怎么做?
编辑:我主要试图操纵这样的事情:
>>> from sympy import *
>>> x=Symbol('x', bool=True)
>>> y=Symbol('y', bool=True)
>>> solve(x & y, x)
导致NotImplementedError。
然后我尝试了solve(x * y, x),它给出了[0](我不知道这是什么意思),solve(x * y = True, x) 导致了SyntaxError,solve(x * y, True, x) 和solve(x & y, True, x) 给出了AttributeError。我不知道还能尝试什么!
编辑(2):我还找到了this,可能有用!
【问题讨论】:
标签: python boolean sympy symbolic-math sage