Python的整除和取模運算

2021-09-22 19:31:23 字數 660 閱讀 9439

1、模運算的計算原理是這樣的: 

假設想求的a = x%y,

a的值是通過如下公式算出來的: a = x - (x/y)*y,且除法是按照整數除法來運算的, 

所以將你的數字代入公式: -17%10 = -17 - (-17/10)*10 = -17 - (-2)*10 = 3. 產生這個結果的關鍵在於程式的取模公式,保證了y是正數,模運算的結果就是[0,y), y是負數,模運算的結果就是(y,0]

2、通常人們希望整除的商和餘數會有這樣的特性: 

1) 被除數= 除數*商+ 餘數 

2) 被除數符號變化,商的符號也變化,而絕對值不變 

3) 餘數的符號和除數相同 

但實際上這3 條不能總是符合的,第1 條是肯定要符合的。舉例來說,3/2 為1,3%2 為1,如果要符合第2 條,那就是-3/2 為-1,-3%2 為-1,它是不符合第3 條的;而如果要符合第3 條,則是-3%2 為1,-3/2 為-2,它是不符合第二條的。 所以一般程式語言會在第2 或者 第3 條中選擇一條,python 選擇的就是滿足第3 條的方式。很多其它的語言選擇的是第2 條。所以在python 中,-17%10 為3,而-17/10 為-2

注,在python 3 中/ 表示除法,不表示整除,所以-17/10 在python 3 中為-1.7,兩個/ 才表示整除: -17//10 為-2 

整除運算與取模運算

凡是呈現明顯週期性的,比如十二生肖 以十二為週期 比如星期 以 7 為週期 比如天乾 以 10 為週期 比如地支 以 12 為週期 最佳的解決方案就是取模 或者簡單地說對該週期取餘數 在 c語言的環境下,將乙個整數對 2 不斷地做整除 也即除了 0 1 之外的任何正整數,不論是奇數還是偶數,不斷地對...

python模運算求餘 取模運算和取餘運算

取模運算和取餘運算 取模運算 modulo operation 和取餘運算 complementation 兩個概念有重疊的部分但又不完全一致。主要的區別在於對負整數進行除法運算時操作不同。取模主要是用於 計算機術語中。取餘則更多是數學概念。模運算在數論和程式設計中 都有著廣泛的應用,從奇偶數的判別...

C和Python中取模運算

最近再看python的相關書籍 突然發現python中的 一般叫做取模運算 和c中的 一般叫做取餘運算 不一樣 自己查了點資料,做了一下總結 首先要說一下不同的取整方式 取整方式分為三類 向上取整,向下取整,向零取整 1.向上取整 向 方向取最接近精確值的整數。在這種取整方式下,5 3 2,5 3 ...