作者newbrain (沒有真心就別談感情)
看板Python
標題[問題] 餘數問題
時間Wed Mar 2 22:18:57 2022
最近重新在學基礎的書籍,
但這邊實在完全看不懂,
為什麼10 % -3 會是-2
又為什麼-10 % 3會是2
即使書上有寫我還是看不懂
有上google查了一些都是英文網站看不是很懂
麻煩厲害的大大教學一下
----------
在这里,10 // 3为3,因为结果向下圆整,而3 × 3为9,因此余数为1。将9除以3时,结
果正好为3,没有向下圆整,因此余数为0。在需要执行之前菜谱指定的“每10分钟检查一
次”之类的操作时,这种运算可能很有用:只需检查minute%10 是否为0。(有关如何执行这种
检查,请参阅本章后面的旁注“先睹为快:if语句”。)从最后一个示例可知,求余运算
符也可用于浮点数。
这种运算符甚至可用于负数,但可能不那么好理解。
>>> 10 % 3
1
>>> 10 % -3
-2
>>> -10 % 3
2
>>> -10 % -3
-1
你也许不能通过这些示例一眼看出求余运算的工作原理,但通过研究与之配套的整除运算
可帮助理解。
>>> 10 // 3
3
>>> 10 // -3
-4
>>> -10 // 3
-4
>>> -10 // -3
3
基于除法运算的工作原理,很容易理解最终的余数是多少。对于整除运算,需要明白的一
个重点是它向下圆整结果。因此在结果为负数的情况下,圆整后将离0更远。这意味着对于
-10 // 3,将向下圆整到-4,而不是向上圆整到-3。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.228.113 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1646230739.A.B36.html
→ OrzOGC: 10//-3=-4 10=-3*-4-2,-10//3=-4 -10=3*-4+2 03/02 22:36
→ mikapauli: 因為餘數在0和除數之間 03/03 08:38
推 ck574b027: 看餘數wiki就知道了,那個關係根本不用絕對值吧 03/03 09:12
→ mantour: a%3 的結果只能是0,1,2 03/03 12:47
→ mantour: a%-3的結果只能是0,-1,-2 03/03 12:48
→ mantour: a%b=r 必須滿足(a-r)是b的倍數且r=0或r在0和b之間 03/03 12:51
→ mantour: 如上圖,圖中上面的數字是除以3的餘數,下面的是除以-3 03/03 15:17
→ mantour: 的餘數 03/03 15:17
推 a21802: 依照定義的話 除數是負數的情況下 餘數是正是負都是對的 03/03 16:21
→ a21802: 但在程式語言下 函式只能定好其中一個結果 03/03 16:22
→ ck574b027: 但是為何要用會有兩個解的定義,有沒有數學系解釋一下 03/03 22:10
→ ck574b027: 喔不用理上面那句,兩個都是對的所以只能這樣定義 03/03 22:15