Sympy中的模数计算失败

时间:2017-10-24 15:07:14

标签: python sympy modular-arithmetic

我在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:我知道这是一个基本问题,我很困惑,我找不到答案。

1 个答案:

答案 0 :(得分:2)

更好的方法是使用Poly和模数标志:

>>> Poly(x + 1, x, modulus=2) + Poly(1, x, modulus=2)
Poly(x, x, modulus=2)