你能告诉我(-2) % 5
多少钱吗?根据我的Python解释器是3,但是你有一个明智的解释吗?
我读到在一些语言中,结果可能是机器相关的,但我不确定。
发布于 2008-09-04 13:41:00
您的Python解释器是正确的。计算模数的一种(愚蠢的)方法是减去或增加模数,直到结果值在0和(模数−1)之间。
例如: 13模5= (13−5)模5= (13−10)模5=3
或者在你的例子中:−2mod5= (−2 + 5) mod5=3
发布于 2008-09-04 13:41:26
对负数进行取模运算的结果似乎依赖于编程语言,下面是清单http://en.wikipedia.org/wiki/Modulo_operation
发布于 2008-09-04 13:41:40
那么,0%5应该是0,对吧?
-1 \f25%5-1\f6应为-1\f25 4-1\f6,因为这是反方向的下一个允许数字(即,它不能为5,因为它超出了范围)。
按照这个逻辑,-2必须是3。
考虑它如何工作的最简单的方法是不断地加或减5,直到数字落在0(包括)和5(不包括)之间。
我不确定机器依赖性-我从来没有见过这样的实现,但我不能说它从来没有完成过。
https://stackoverflow.com/questions/43775
复制相似问题