【问题标题】:Remove some variables from Boolean expression in SymPy从 SymPy 中的布尔表达式中删除一些变量
【发布时间】:2018-05-25 15:56:10
【问题描述】:

我在 SymPy 中有一个布尔表达式。如果我知道一些符号的值,我怎样才能找到其余符号之间的关系? 例如:

from sympy.core.symbol import Symbol
from sympy.logic.boolalg import Equivalent
from sympy import simplify_logic
a=Symbol("a")
b=Symbol("b")
c=Symbol("c")
d=Symbol("d")
e=Symbol("e")

expr=a&b>>c|a&d|~a&Equivalent(c,(d|a&e))
print("if a=True and d=False, then relation between a,c and e must be")#c|~b

或者:我有一个布尔函数f(a,b,c,k,l,j)。如果已知abc,如何求解klj?我知道我必须在abc 的任何值上形成一个新的表达式,但是该怎么做呢?

simplify_logic((eeldus&expr))                    #leaves a and d in.

【问题讨论】:

    标签: python boolean sympy boolean-logic boolean-expression


    【解决方案1】:

    如果我正确理解您的问题,subs 会起作用:

    >>> from sympy import *
    >>> a, b, c, d, e = symbols('a b c d e')
    >>> expr = a & b >> c | a & d | ~a & Equivalent(c,(d | a & e))
    >>> expr.subs([(a,true),(d,false)])
    Implies(b, c)
    

    【讨论】:

      猜你喜欢
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      • 2014-03-11
      相关资源
      最近更新 更多