【发布时间】:2017-05-05 04:42:09
【问题描述】:
我有一个很长的表达式,我认为可以简化,我认为sympy 将是完成它的完美方式。不幸的是,这个公式依赖于几个整数除法,我找不到任何方法来表示 sympy 中的那些。
>>> x=Symbol('x')
>>> (x+1)/2
x/2 + 1/2
显然不是我想要的,1/2 不是整数。
>>> (x+1)//2
TypeError: unsupported operand type(s) for //: 'Add' and 'int'
显然sympy 无法处理//。
>>> Integer((x+1)/2)
# A long list of error messages, ending with ...
TypeError: Integer can only work with integer expressions.
Integer 似乎只适用于常数,而不是公式。
有一个函数trunc,但它似乎没有做任何与我想要的类似的事情。
sympy中有什么方法可以表示整数除法?
【问题讨论】:
-
你不能用
floor吗? -
@SwiftsNamesake 也许我可以,但我没有想到。
help(floor)产生的输出比我能快速消化的要多得多。 -
floor((x+1)/2)结果为floor(x/2 + 1/2)(我刚刚安装了 sympy 进行验证) -
@SwiftsNamesake:不幸的是,
floor不支持简化;看我的回答。
标签: python sympy integer-division