整数除算切り上げテク直観的解説
整数除算で余りが出る(=商に少数が含まれる)場合に、切り上げたいとき利用する有名なテクニックがあります。
割られる数$:a$
割る数$:b$
$\frac{a + b - 1}{b}$
上記のテクを利用せずとも、整数除算で余りが出るときに1を加え、そうでない場合は切り捨て計算を行う場合分けでも同じく計算可能です。
割られる数に$b-1$を加えて$b$で割るだけなのですが、$b-1$を加える理由は直観的に理解できます。
もし余りが出る場合は、割る数$:b$よりも絶対に小さくなります。
整数除算では余りの部分は切り捨てされてしまうので、これを商に含めるため割られる数に$b$を加える発想をします。これにより$b$を加えた1回余分に割ることができます。
ただし、割られる数に$b$をそのまま加えると、割り切れるものに対しても1回余分に割ってしまうので、余りがでたときには余分に1回割れるが、余りが出ないときには切り捨てされるような値、即ち$b-1$を割られる数に加えるというのが理由になります。
例)
5 / 3 = 1 ... 2 → 2
6 / 3 = 2 ... 0 → 2
7 / 3 = 2 ... 1 → 3
8 / 3 = 2 ... 2 → 3
9 / 3 = 3 ... 0 → 3
上記、余りが0の場合、商がそのまま切り上げ値になります。
余りがある場合、商に1を加えた値が切り上げ値になります。
割られる数に$3-1=2$を加えておけば、余りがある場合は余分に1回割ることができ、余りが無い部分は3に届かず切り捨てされるで、切り上げ値をちょうどよく求めることができます。
(5 + 2) / 3 = 2
(6 + 2) / 3 = 2
(7 + 2) / 3 = 3
(8 + 2) / 3 = 3
(9 + 2) / 3 = 3