您好,登錄后才能下訂單哦!
????偶然遇到一個python取余運算的問題,不是很理解,于是查找了一些文章進行分析
本文章參考 ? ?http://ceeji.net/blog/mod-in-real/? ?進行實例分析
?直接引用結論
1.對于任何同號的兩個整數,其取余結果沒有爭議,所有語言的運算原則都是使商盡可能小。
2.對于異號的兩個整數,C++/Java語言的原則是使商盡可能大,很多python 等新型語言和網頁計算器的原則是使商盡可能小
舉例:
分析驗證:
對于Python中,正負整數取余運算:
????????若除數,被除數同號:
????????????????1) 99 % 7 ? ? ? ? 分解操作 => 7 * 14 + 1 ? , 商為 14 ,余數為 1 ? ???
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分解操作=> 7 * 15 +(-6),商為 15,余數為 -6
????????????????????????
????????????????????????由開頭的結論得知,python的計算原則是使商盡可能小,所以 取商 14 ,余數為 1
??
????????????????2)-99 % (-7) 分解操作 => -7* 14 ?+(-1),商為 14,余數為 -1
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?分解操作 => -7*-15 ?+ ? ?6 ? ?,商為 15,余數為 6
????????????????????????由開頭的結論得知,python的計算原則是使商盡可能小,所以 取商 14 ,余數為 -1
???????????
???????? 若除數,被除數異號:
????????????????1) 99 % -7 ? ? ? ? 分解操作 => -7 * (-14) + ? ? 1 ? ?, 商為 -14 ,余數為 1 ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?分解操作 => -7 * (-15) +(-6),商為 -15,余數為 -6
??
????????????????????????由開頭的結論得知,python的計算原則是使商盡可能小,所以 取商 -15 ,余數為 -6
????????????????2)-99 % 7 ????? ? ?分解操作 => 7*(-14)+(-1),商為 -14,余數為 -1
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?分解操作 => 7*(-15)+(6),商為 -15,余數為 6
????????????????????????由開頭的結論得知,python的計算原則是使商盡可能小,所以 取商 -15 ,余數為 6
?
以上驗證實驗輸出結果。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。