記事ディレクトリ
意味
モジュロ(%)演算:2つの数値を割った余りを求める演算ですが、剰余演算
も剰余を計算するのでモジュロと同じ概念なのでしょうか、それとも別の名前なのでしょうか?
もちろんそうではありません。
モジュロ演算と剰余 (/) 演算には重複する部分がありますが、完全に一貫しているわけではありません。2
つの違いは次のとおりです。
違い | 取模(%) | 余りを取る (/) |
---|---|---|
使用 | 主にコンピュータ用語で使われる | 数学的概念 |
丸め方法 | 負の無限大に向かって丸める | 0 に向かって丸める |
計算記号 | mod または "%" | 「/」 |
計算プロセス
ここで、a は被除数、b は除数です
- まず整数商 c = [a/b] を求めます。
- 計算法 r = a - c*b
例
例 | 取模 | 残りを取る |
---|---|---|
a = 7;b = 4 | c = [7/4] = 1; r = 7 - 1*4 = 3; | c = [7/4] = 1; r = 7 - 1*4 = 3; |
a = -7;b = 4 | c = [-7/4] = -2 (負の無限大に向かって四捨五入); r = -7-(-2)*4=1; | c=[-7/4]=-1 (0 方向に四捨五入); r = -7-(-1)*4= -3; |
a = 7;b = -4 | c = [7/(-4)] = -2; r = 7 - (-2)*(-4) = -1 | c = [7/(-4)] = -1; r = 7-(-1)*(-4) = 3; |
a =-7;b =-4 | c = [(-7)/(-4)] = 1; r = -7-1*(-4) = 3; | c = [(-7)/(-4)] = 1; r = -7-1*(-4) = 3; |
誘導
上の表からいくつかのポイントをまとめることができます
- a と b の正負の符号が同じ場合、モジュロ演算と剰余演算の結果は同じになります。
- a と b の符号が異なる場合、係数と剰余の計算に違いが生じます。
- モジュロ値は b と同じ符号を持ちます。
- 剰余値は、a と同じ符号を持ちます。
プログラミング言語間の違い
- C/C++ および Java のモジュロは剰余と同等であり、% 演算子はありません。
- Python の / は剰余、% は係数です。違いはこの記事で述べたものと同じです。