剰余演算(モジュロとも呼ぶ)とは、コンピュータにおいて、ある数値を別の数値("法"と呼ばれることもある)で除算し、余りを取得する演算である。2つの正の整数である、被除数 および 除数が与えられる場合、"a" の "n" による剰余 ("a" modulo "n"、略して "a" mod "n"とも表記される)は、ユークリッド除法における "a" を "n" で除算した余りとなる。例えば、「5 mod 2」の結果は 1 となる。なぜなら、5を2で除算した場合商は2となり、余りは1となるからである。また、「9 mod 3」の結果は0となる。9を3で除算した商は3となり余りは0となる(言い方を変えれば9から3を3回引いた場合に残りがなくなる)からである。一般的な電卓を使用して除算を行う場合、商が小数点表記で出力されるため、剰余演算は直接行えないことに注意する。通常の場合、 "a" と "n" はともに整数で処理されるが、多くのコンピュータシステムでは他の数値型でも処理が可能である。整数 "n" の剰余の取りうる範囲は、0から "n" - 1 までである。「"n" mod 1」 の場合常に0となる。「"n" mod 0」 の場合は未定義であり、プログラミング言語によっては「0除算」エラーを結果とする。 または が負数の場合については、単純な定義はなく、プログラミング言語によってどのように定義されるかが異なっている。数論における古典的な関連事項については合同算術を参照。数学的には、剰余演算の結果はユークリッド除法における余りのことである。しかし、別の法則に従って算出されることもある。コンピュータやその他の計算機は数値の保持や処理方法がさまざまであるため、剰余演算の定義はプログラミング言語や動作するハードウェアによって、それぞれ規定されている。ほぼすべてのコンピュータシステムにおいて、 を で除算した商 および剰余 は下記の条件を満たす。ところが、剰余が0でない場合、その符号は不確定なものとなる。数論上は、余りは常に正の数となるが、プログラミング言語によっては "a" および "n" の符号によって剰余の符号が正となるか負となるかが定められる。標準的なPascalおよびAlgol68は除数が負数であっても正の剰余(もしくは0)を出力する。しかし、C90のような、他のプログラミング言語では、 "n" または "a" が負の数の場合にはそうならないことがある。詳細は右表を参照。多くのシステムでは "a" の 0での剰余は未定義だが、いくつかは"a"を出力するように定義されている。Daan Leijenはこう記している。被除数の符号に剰余の結果が依存する場合、意外な失敗を引き起こすことがある。例えば、ある整数が奇数であるかチェックしたい場合、 下記のC++での例のように、2 で除算した余りが 1 であるかどうかを確かめればよいようにみえる。しかし、使用するプログラミング言語が、剰余の符号を被除数に依存させている場合、これは正しくない。なぜなら、"n" が負の奇数の場合、"n % 2" は -1 となるため、この関数はfalseを返す。正しい実装のひとつは、0 でないかどうかをチェックすることである。剰余が0であれば符号を気にする必要はない。もちろん、どのような奇数も、剰余は 1 または -1 となるため、下記のような実装もできる。電卓の中には、剰余を算出する mod() ボタンを持つものがある。多くのプログラミング言語も mod() 機能を実装し、mod("a
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。