Matlabでは剰余はmod(a, b)
という関数で取れる。
割り算の商はfloor(a/b)
と丸めるのがおそらくは簡単だと思われる。
Pythonだと、余りはa % b
で 商はa // b
という演算子で書けてスッキリ。
商と剰余、両方必要なときはdivmod(a, b)
という便利関数も組み込みである。
余談ながら、累乗はMatlabでは^
だったけど、Pythonでは**
だ。
#例:in Matlab
>> floor(5^0.5/1)
ans =
2
>> mod(5^0.5,1)
ans =
0.2361
#例:in Python
>>> (5 ** 0.5) // 1
2.0
>>> (5 ** 0.5) % 1
0.2360679774997898
本当はカッコは要らなくて、5 ** 0.5 // 1
とか5 ** 0.5 % 1
で良いのだけれど、カッコがある方が読みやすい気がする。
商と剰余両方ほしいときはdivmod()
>>> divmod(5 ** 0.5, 1)
(2.0, 0.2360679774997898)
divmod()の出力のタプルは、もちろんアンパックして受けてもOK
>>> (q ,r) = divmod(13, 5)
>>> q
2
>>> r
3
divmodは地味に便利そうだ。