猿问

具有负值的模数运算-很奇怪吗?

你能告诉我多少钱(-2) % 5吗?根据我的Python解释器,它是3,但是您对此有一个明智的解释吗?

我读过某些语言的结果可能与机器有关,但是我不确定。


弑天下
浏览 263回答 3
3回答

人到中年有点甜

顺便说一句:大多数编程语言会不同意Python并给出结果-2。根据模量的解释,这是正确的。但是,最公认的数学定义是a和b的模数是a&nbsp;/&nbsp;b除法的(严格为正)余数r。更确切地说,0 <=&nbsp;r&nbsp;<&nbsp;b定义为。

海绵宝宝撒

您的Python解释器是正确的。一种计算模数的(愚蠢的)方法是减去或增加模数,直到结果值介于0和(模数− 1)之间。例如:13 mod 5 =(13-5)mod 5 =(13-10)mod 5 = 3或您的情况:−2 mod 5 =(−2 + 5)mod 5 = 3
随时随地看视频慕课网APP

相关分类

Python
我要回答