MATLAB の Mod 関数
割り算の計算中に、整数の商よりも剰余の方が重要な場合があります。たとえば、17 を 3 で割る場合、商の 5 よりも 2 の余りの方が重要です。数学ソフトウェア プログラム MATLAB の何千もの組み込み関数の 1 つは、「modulus」の略である「mod」コマンドです。 「mod」関数は、除算の剰余を直接計算します。
Mod の例
ジョンが 17 個のリンゴを持っていて、ジョンと 2 人の友人の間でできるだけ均等に分けて、リンゴの数が同じになるようにしたいとします。りんごは何個残る?この 1 行の MATLAB コードで問題を解決してください:
Mod(17,3)
MATLAB はコードを読み取り、17 を 3 で割り、リンゴが 2 つ残ることを John に伝えます。
モッド対レム
"mod" に密接に関連する関数は、MATLAB の "rem" 関数で、"remainder" の略です。 「mod」関数の誤った使用法で考えられる落とし穴は、答えが常に除数の符号を保持することです。たとえば、
Mod(-17,3)
3 は正であるため、正の 2 を返します。割り算で答えに正しい符号が必要な場合は、次のように「rem 関数」を使用します。
レム(-17,3)
この場合、MATLAB は負の 2 を出力します。
一部の Mod ルール
"mod" 関数を使用する際に MATLAB ユーザーが知っておくべき規則がいくつかあります。そのほとんどは除算の基本的な規則に従います。
まず、「mod(X,0)」はエラーではなく「X」を返します。次に、「mod(X,X)」は「0」を返します。第 3 に、「X」と「Y」が等しくなく、「Y」がゼロでない限り、「mod(X,Y)」は「Y」と同じ符号を持ちます。最後に、"mod(X,Y)" と "rem(X,Y)" は、"X" と "Y" が同じ符号を共有している場合は同じですが、それ以外の場合は "Y" が異なります。
合同で使用
剰余演算では、「n」で割ったときの剰余が同じ場合、2 つの数値は「合同 mod n」です。別の言い方をすると、「n」の倍数を 1 つの数値に足したり引いたりすると、もう一方の数値になる可能性があります。たとえば、午前 6 時と午後 6 時です。一方に 12 を加えるともう一方になるため、「合同 mod 12」です。午後6時換算ミリタリー タイムで 1800 まで、次のコードは「true」と評価され、MATLAB の「mod」コマンドを使用して一致を証明します:
Mod(6,12)==Mod(18,12)