我有一个非常长的表达式,我认为可以简化,我想用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
吗? - SwiftsNamesakehelp(floor)
产生的输出太多了,我无法快速消化。 - Mark Ransomfloor((x+1)/2)
的结果为floor(x/2 + 1/2)
(我刚刚安装了Sympy进行验证) - SwiftsNamesakefloor
不支持简化;请看我的答案。 - Wrzlprmft