フロア除算(床関数の割り算)とは?
フロア除算とは、ある数を別の数で割り、その結果を「正確な商以下で最大の整数」へ切り下げる計算方法です。Python をはじめとする多くのプログラミング言語では a // b と表記されます。小数が出ることもある通常の割り算とは異なり、フロア除算は必ず整数を返します。この電卓では、入力した 2 つの数に対して、切り下げた商(フロア商)とそれに対応する余りの両方を計算します。
使い方
被除数(割られる数 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 にはならず、除数が正のときは余りが 0 以上に保たれます。
具体例
a = 17、b = 5 の場合を考えてみましょう。正確な商は 3.4 です。3.4 の床(floor)は 3 なので、フロア商は 3 になります。余りは \(17 - 5 \times 3 = 17 - 15 = 2\) です。したがって \(17 // 5 = 3\) で、余りは 2 となります。
よくある質問
フロア除算と整数除算はどう違うのですか? 正の数では両者は一致します。違いが出るのは負の数のときです。整数除算(切り捨て除算)は 0 方向へ丸めるのに対し、フロア除算は負の無限大方向へ切り下げます。
除数を 0 にできますか? いいえ。0 での割り算は定義されないため、この電卓では 0 以外の除数が必要です。
余りは何に使うのですか? 商と余りを組み合わせると、元の数を復元できます(a = b × 商 + 余り)。これは剰余演算(モジュロ)や時計のような周期計算で役立ちます。