剰余
テンプレート:Redirectlist テンプレート:Calculation results 数学において剰余(じょうよ、テンプレート:Lang-en-short)とは、ある種の計算を実行した後の「あまり」の量を指す。算術においては、剰余とはある整数を別の整数で割って(除法、割り算)商を得る際に「あまる」整数のことを指す(整数除法)。多項代数学においては、剰余とはある多項式を別の多項式で割った際の「あまり」を指す。剰余演算は被除数(テンプレート:Lang)と除数(テンプレート:Lang)が与えられた際にそのような乗除を得るような演算である。
他に、ある数から別の数を引いた(減法、引き算)際に残された数のことも剰余と呼ばれるが、こちらは「差」という言い方がより正確である。この用法はいくつかの初歩的な教科書で見られる。会話では「2ドルを私に返して、残りはそちらで持っておいてくれ」といったようにしばしば「残り」(テンプレート:Lang)という語に置き換えられる[1]。しかしながら、「剰余」という用語はこの用法であっても、函数をテンプレート:仮リンクする際に「誤差」が剰余項として使われる。
整数除法
テンプレート:Mvar を整数、テンプレート:Mvar を0でない整数とすると、式 テンプレート:Math(テンプレート:Math)を満たすただ一組の整数 テンプレート:Mvar および テンプレート:Mvar が存在する。ここで テンプレート:Mvar は「商」、テンプレート:Mvar は「剰余」とそれぞれ呼ばれる。
(この結果の証明は en:Euclidean division を参照。どのように剰余を計算するかのアルゴリズムについては除算 (デジタル)を参照。)
上で定義されたような剰余は「最小正剰余」あるいは単に「剰余」と呼ばれる[2]。整数 テンプレート:Mvar は テンプレート:Mvar の倍数か、(テンプレート:Mvar を正として)テンプレート:Math と テンプレート:Math の間にある数のどちらかである。
いくつかの場合、テンプレート:Mvar ができる限り テンプレート:Mvar の整数倍になるようにすると便利である。このとき、いくつかの整数 テンプレート:Mvar に対して
- テンプレート:Math(ただし テンプレート:Math)
となる。
この場合、テンプレート:Mvar は「最小絶対剰余」と呼ばれる[3]。商および剰余と同様に、テンプレート:Math かつ テンプレート:Math の場合を除き、テンプレート:Mvar と テンプレート:Mvar は一意に定まる。例外の場合、
となる。 固有の剰余はいくつかの条件(例えば テンプレート:Mvar は正に限る)などの条件を付け加えた場合に得られる。
例
43を5で割る場合、
となり、3が最小正剰余となる。また
となるから、−2が最小絶対剰余となる。
これらの定義は テンプレート:Mvar が負の場合も有効である。例えば43を−5で割ると
より3が最小正剰余となり、一方
より−2が最小絶対剰余となる。
42を5で割ると
となり、テンプレート:Math であるから、2は最小正剰余かつ最小絶対剰余となる。
これらの例において、(負の)最小絶対剰余は最小正剰余から5、すなわち テンプレート:Mvar を引くことで得られる。このことは一般に成り立つ。テンプレート:Mvar で割った際、両方の剰余は正でそれゆえ等しくなるか、あるいは正負が真逆になる。正剰余を テンプレート:Math とし、負のものを テンプレート:Math とすると
となる。
浮動小数点数
テンプレート:Mvar および テンプレート:Mvar が浮動小数点数で、かつ テンプレート:Mvar がゼロでない時、テンプレート:Mvar は テンプレート:Mvar によって剰余なしで割り切れ、その商は別の浮動小数点数となる。しかしながら、商を整数値に制限するとき、剰余の概念が必要となる。テンプレート:Math(ただし テンプレート:Math)を満たすような唯一つの整数商 テンプレート:Mvar および浮動小数点数剰余 テンプレート:Mvar が存在することを示せる。
上記のような、剰余の概念を浮動小数点数へ拡張することは数学の理論上重要ではない。しかしながら、多くのプログラミング言語はこの定義を実装している(剰余演算を参照)。
プログラミング言語
テンプレート:Main 定義そのものは困難ではないが、剰余を計算する際に負の数が関わることによる実装の問題が存在する。プログラミング言語ごとに異なる慣習が採用されている。以下に例を示す。
- Pascal は mod 演算の結果が正になるよう選び、テンプレート:Mvar が負や0になるのを許容していない(それゆえ テンプレート:Math は必ずしも成り立たない)[4]。
- C99 は剰余が被除数 テンプレート:Mvar と同じ符号になるよう選ぶ[5]。(C99より前では、C言語は他の選択肢を許容していた)
- Perl と Python(テンプレート:どれ範囲のみ)は剰余が除数 テンプレート:Mvar と同じ符号になるよう選ぶ[6]。
- テンプレート:要出典範囲
多項式の除法
テンプレート:Main 多項式のユークリッド除法は整数のユークリッド除法とよく似ており、多項式剰余が導かれる。その存在は次の定理に基づく。ある体(特に実数あるいは複素数)上で定義された一変数多項式 テンプレート:Math および テンプレート:Math(テンプレート:Math は非零多項式)が与えられたとき、
であるような式
を満たす2つの多項式 テンプレート:Math(商)および テンプレート:Math(剰余)が存在する[7]。ただし「テンプレート:Math」は多項式の次数を表す(値が常に0となるような定数多項式の次数は負と定義できることから、この次数条件は剰余に関して常に成り立つ)。さらに、それぞれの関係から テンプレート:Math および テンプレート:Math は一意に定まる。
ユークリッドの整数除法との違いとして、次数条件が剰余 テンプレート:Mvar の境界(非負かつ除数より小さい、このことによって テンプレート:Mvar の一意性が保たれる)に置き換わることがあげられる。整数除法と多項式の除法の類似性から、ユークリッド除法が成立するもっとも一般的な代数学的条件の追求が促されている。このような定理が存在する環をユークリッド整域と呼ぶが、この一般性では商および剰余の一意性は保証されていない[8]。
多項式の除法から剰余の定理(多項式 テンプレート:Math を テンプレート:Math で割るとき、その剰余は定数 テンプレート:Math となる)と呼ばれる結果が導かれる[9][10]。特に、テンプレート:Mathならば、テンプレート:Mathはテンプレート:Mathを因数に持つ(因数定理)。
関連項目
- 中国の剰余定理
- テンプレート:仮リンク
- テンプレート:仮リンク
- ユークリッドの互除法
- テンプレート:仮リンク
- 合同算術
- テンプレート:仮リンク
- テンプレート:仮リンク
- テンプレート:仮リンクー組立除法の特殊例
- テイラーの定理
- 剰余環
- 剰余群、巡回群
出典
- ↑ テンプレート:Harvnb
- ↑ テンプレート:Harvnb. ただし剰余が0の(すなわち、正の数でない)場合でも「正剰余」と呼ばれる。
- ↑ テンプレート:Harvnb
- ↑ Pascal ISO 7185:1990 6.7.2.2
- ↑ テンプレート:Cite web
- ↑ テンプレート:Cite web
- ↑ テンプレート:Harvnb
- ↑ テンプレート:Harvnb
- ↑ テンプレート:Harvnb
- ↑ テンプレート:Cite web