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)
我在 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)