我在Sympy中有一个计算,我希望它是模2。 但是,如果我只是写
from sympy.abc import x
(((x + 1) % 2) + 1) % 2
然后这有输出Mod(Mod(x + 1, 2) + 1, 2)
,即两个+1
不会消失。即使致电.simplify()
也没有达到预期的效果。
另一篇帖子(Modulo 2 arithmetics in SymPy)建议sympy.trunc
。但是如果表达式是整数,则此函数不起作用。
我甚至试过sympy.trunc(sympy.sympify(1),2)
,但这仍然引发了错误。
那么我如何得到一个对整数和所有系数起作用的模数函数呢?
PS:我知道这是一个基本问题,我很困惑,我找不到答案。答案 0 :(得分:2)
更好的方法是使用Poly和模数标志:
>>> Poly(x + 1, x, modulus=2) + Poly(1, x, modulus=2)
Poly(x, x, modulus=2)