什麼是向下取整除法?
向下取整除法(floor division)是把一個數除以另一個數後,將結果往下取整到小於等於精確商值的最大整數。在 Python 等許多程式語言中,它寫作 a // b。一般除法的結果可能是小數,但向下取整除法永遠回傳整數。這個計算機會針對你輸入的任意兩個數,同時算出向下取整後的商與對應的餘數。
使用方法
輸入被除數(要被除的數,a)與除數(拿來除的數,b),按下計算,就能看到向下取整的商與餘數。除數不可以是 0。本計算機同時支援正數與負數,並遵循「結果朝負無限大方向取整」的慣例。
公式說明
核心公式是 floor(a ÷ b),也就是小於等於 a÷b 精確值的最大整數。
$$ q = \left\lfloor \frac{\text{Dividend }a}{\text{Divisor }b} \right\rfloor $$餘數則定義為 r = a − b × floor(a ÷ b)。
$$ r = \text{Dividend }a - \text{Divisor }b \cdot q $$由於商是往下取整、而非朝 0 取整,因此負數的運算結果相當可預期:例如 -7 // 2 = -4 而不是 -3;只要除數為正,餘數就會保持非負。
實際範例
假設 \(a = 17\)、\(b = 5\)。精確的商是 \(3.4\),\(3.4\) 向下取整後是 \(3\),所以向下取整的商為 \(3\)。餘數為
$$ 17 - 5 \times 3 = 17 - 15 = 2 $$因此 \(17 \mathbin{//} 5 = 3\),餘數為 \(2\)。
常見問題
向下取整除法和整數除法有什麼不同?對正數來說兩者結果相同;差別出現在負數:整數除法(截斷除法)是朝 0 取整,而向下取整除法是朝負無限大取整。
除數可以是 0 嗎?不行。除以 0 在數學上沒有定義,因此本計算機要求除數必須為非零數。
餘數有什麼用途?商與餘數合起來可以還原原本的數字:\(a = b \times \text{商} + \text{餘數}\),這在模運算(modular arithmetic)與時鐘式的循環計算中相當實用。