Python言語でのモジュロ演算

意味

モジュロ(%)演算:2つの数値を割った余りを求める演算ですが、剰余演算
も剰余を計算するのでモジュロと同じ概念なのでしょうか、それとも別の名前なのでしょうか?
もちろんそうではありません。
モジュロ演算と剰余 (/) 演算には重複する部分がありますが、完全に一貫しているわけではありません。2
つの違いは次のとおりです。

違い 取模(%) 余りを取る (/)
使用 主にコンピュータ用語で使われる 数学的概念
丸め方法 負の無限大に向かって丸める 0 に向かって丸める
計算記号 mod または "%" 「/」

計算プロセス

ここで、a は被除数、b は除数です

  1. まず整数商 c = [a/b] を求めます。
  2. 計算法 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;

誘導

上の表からいくつかのポイントをまとめることができます

  1. a と b の正負の符号が同じ場合、モジュロ演算と剰余演算の結果は同じになります。
  2. a と b の符号が異なる場合、係数と剰余の計算に違いが生じます。
  3. モジュロ値は b と同じ符号を持ちます。
  4. 剰余値は、a と同じ符号を持ちます。

プログラミング言語間の違い

  1. C/C++ および Java のモジュロは剰余と同等であり、% 演算子はありません。
  2. Python の / は剰余、% は係数です。違いはこの記事で述べたものと同じです。

Guess you like

Origin blog.csdn.net/weixin_43500200/article/details/130825145