python中的整数表达方式_python – 任何方式在sympy中进行整数除法?

标准

我假设你想要一个通过以下测试的函数div:

from sympy import sympify, simplify, Symbol

def test_div(div):

# check that div behaves as intended for integers

for i in range(-5,5):

for j in range(-5,5):

if j==0: continue

assert i//j == div(sympify(i),sympify(j))

# check that div’s output can be simplified

x = Symbol("x", integer=True)

assert simplify( div(x+1,2) - div(x-1,2) ) == 1

您可以使用模运算符实现整数除法,如下所示:

div = lambda x,y: (x-x%y)/y

由于SymPy支持模数算术并且能够简化它,因此该函数通过了上述测试.但是,如果不能进行完全简化,您最终会得到可能不需要的模数表达式.

地板

正如在评论中已经提到的,SymPy提供了一个floor函数,它可以用来获取整数除法(这也是表达式的//运算符的实现方式):

div = lambda x,y: sympy.floor(x/y)

但是,楼层不支持简化,因此无法进行第二次测试.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值