【问题标题】:Modulo computations in Sympy failSympy 中的模计算失败
【发布时间】:2017-10-24 15:07:13
【问题描述】:

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

【问题讨论】:

标签: python sympy modular-arithmetic


【解决方案1】:

处理此问题的更好方法是将 Poly 与模数标志一起使用:

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

【讨论】:

    猜你喜欢
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多