python - 从 SymPy 中的布尔表达式中删除一些变量
问题描述
我在 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)
。如何解决k
,l
和j
如果a
,b
和c
是已知的?我知道我必须形成一个对a
,b
和的任何值都为真的新表达式c
,但是该怎么做呢?
simplify_logic((eeldus&expr)) #leaves a and d in.
解决方案
如果我正确理解您的问题,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)
推荐阅读
- javascript - React App 未与 Express 后端通信
- javascript - 日期管道角度它不能只显示月份和年份它显示日期、月份和年份
- java - JPA Transactional 方法在已保存列后更新该列
- math - 两个长度不等的二进制数的编辑距离可以用数学方法近似吗?
- regex - Laravel VueJS地址验证RegExp不起作用
- java - 创建不同 pojo 对象并保存在数据库中的通用方法
- python - Odoo:如何制作一个接受其他类型模型的通用模型(多态)
- c++ - 通过套接字 C++ 发送指针
- ruby-on-rails - 无法将 has_one_attached 文件连接到 active_storage-send-zip 的数组
- reactjs - React / Next.js 中 Google Optimize 的一般问题