当a-b*i
变为否定时,为什么使用Python 2.7时-8 % 5
2
而不是3
或-3
。
a = 12
b = 5
for i in range(10):
print a-b*i, (a-b*i) % b
12 2
7 2
2 2
-3 2
-8 2
-13 2
-18 2
-23 2
-28 2
-33 2
答案 0 :(得分:1)
您可以使用谷歌计算器自行检查:
https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=-8+%25+5
当你对a / n进行Euclidian分割时,你会收到提醒。整个交易应该满足一个等式
a = qn + r
其中q是商,属于Z(从-inf到+ inf的整数)
所以在你的情况下
-8 = 5 * (-2) + 2
thus
r = 2 = (-8) % 5