Sympy 中的模计算失败

Modulo computations in Sympy fail

我在 Sympy 中有一个计算,我想对 2 取模。 但是,如果我只写

from sympy.abc import x
(((x + 1) % 2) + 1) % 2

然后这有输出Mod(Mod(x + 1, 2) + 1, 2),即两个+1不消失。即使调用 .simplify() 也没有达到预期的效果。

另一个 post (Modulo 2 arithmetics in SymPy) 建议 sympy.trunc。但是如果表达式是整数,这个函数就不起作用。 我什至尝试了 sympy.trunc(sympy.sympify(1),2),但这仍然引发了错误。

那么如何获得适用于整数和所有系数的模​​函数?

PS: 我知道这是一个基本问题,我很困惑,找不到答案。

处理这个问题的更好方法是使用带有模数标志的 Poly:

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