繁体   English   中英

如何在 sympy 中获取布尔逻辑表达式/数学表达式的一部分?

[英]How to get parts of an boolean logical expression/ math expression in sympy?

我想得到像这样的布尔逻辑表达式的所有部分 (x & y) | (a | b)。 我想将 (x & y) 和 (a | b) 作为分离的函数。 我尝试使用 args,但它为我提供了 (x & y, a,b)。 我试过使用 atoms() 但它只是提供给我 {a, x, y, b}。 即使通过 args 作为列表进行迭代也没有给我想要的结果。 我想得到一个表达式,例如 (x & y) | (a | b),将其分成多个部分以创建一个真值表,逐步显示 (x & y) 和 (a | b) 在显示表达式的最终结果之前计算的结果。

谢谢

我不知道有什么方法可以创建嵌套的Or ,因此您的表达式会自动变为(x & y | a | b) ,这就是您获得参数的原因。 除了所需的Or将它们作为参数之外,我只会创建这两个表达式:

o1 = x & y
o2 = a | b
eq = o1 | o2
from sympy.utilities.iterables import *
for i in subsets((True, False), 4, repetition=True):
    for p in multiset_permutations(i):
        reps = dict(zip((x,y,a,b),p))
        print(reps, o1.xreplace(reps), o2.xreplace(reps), eq.xreplace(reps))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM