← ホームへ戻る

剰余(あまり)の数学的定義と計算手法整数から多項式まで

🗓 2026年8月13日

数学における剰余(じょうよ)とは、ある計算を行った後に「残った量」のことを指します。一般的に算数や数学の文脈では、ある整数を別の整数で割った際に、商として割り切れなかった部分を意味します。この概念は単純な割り算にとどまらず、代数学における多項式の除算や、コンピュータサイエンスにおける剰余演算(モジュロ演算)など、幅広い分野で重要な役割を果たしています。

また、広義にはある数から別の数を引いた後の「差」を指すこともありますが、数学的な厳密さを持って「剰余」と呼ぶ場合は、主に除法の結果として得られる値を指します。解析学などの高度な数学では、関数を級数展開で近似した際の誤差を表す「剰余項」という概念としても利用されます。

Key Facts

  • 剰余の基本: 整数 $a$ を $d$ で割ったとき、$a = qd + r$($0 \le r < |d|$)を満たす $r$ が剰余となる。
  • 2種類の剰余: 一般的な「最小正剰余」のほか、絶対値が最小となる「最小絶対剰余」という考え方がある。
  • 多項式への応用: 整数と同様に多項式同士の除算でも剰余が発生し、その次数は除数の次数より低くなる。
  • 実装の差異: プログラミング言語によって、負の数を扱う際の剰余の符号(正か負か)の決定ルールが異なる。

整数除法における剰余の定義

整数 $a$ を 0 ではない整数 $d$ で割る場合、数学的に一意な商 $q$ と剰余 $r$ が存在し、以下の式で表されます: $a = qd + r$ (ただし $0 \le r < |d|$) この $r$ を最小正剰余、あるいは単に剰余と呼びます。

一方で、計算の便宜上、剰余の絶対値をできるだけ小さくしたい場合があります。このとき、$|s| \le |d/2|$ となるように設定した $s$ を最小絶対剰余と呼びます。この定義では、商 $k$ と剰余 $s$ も一意に定まります(ただし $d=2n$ かつ $s=\pm n$ の場合は例外的に2通り存在するため、正の値を取るなどの慣習で統一されます)。

例えば、43を5で割る場合を考えてみましょう。通常は $43 = 8 \times 5 + 3$ となり、剰余は 3 です。しかし、最小絶対剰余の考え方を用いると $43 = 9 \times 5 - 2$ となり、剰余は -2 となります。このように、正の剰余 $r_1$ と負の剰余 $r_2$ の間には $r_1 = r_2 + d$ という関係が成り立ちます。

浮動小数点数における扱い

実数(浮動小数点数)同士の除算では、通常は割り切れるため剰余は発生しません。しかし、商を整数に限定するという制約を設ければ、浮動小数点数においても $a = qd + r$ ($0 \le r < |d|$)を満たす一意な整数商 $q$ と浮動小数点剰余 $r$ を定義することが可能です。これは理論数学よりも、多くのプログラミング言語の実装において重要視されています。

剰余を求めるための主要な手法

剰余を算出する方法は、対象となる数や式の種類によって異なります。

  • 筆算(Long Division): 手計算で用いられる伝統的な手法です。除数で割れる回数を求め、引き算を繰り返すことで最終的な残りを算出します。
  • 剰余演算(Modular Arithmetic): コンピュータサイエンスや暗号理論で多用される手法です。ある数を別の数で割った余りを効率的に求める演算で、一般に「mod」と表記されます。
  • 剰余定理(Remainder Theorem): 多項式の除算に特化した定理です。多項式 $P(x)$ を 1次式 $(x - a)$ で割ったときの剰余は、単に $P(a)$ を計算することで得られます。

プログラミング言語による実装の違い

負の数が関わる剰余計算の処理は、言語によって仕様が異なります。これは数学的な定義に正解が複数あるためです。

プログラミング言語別の剰余演算の仕様
言語 剰余の符号の決定ルール 備考
C (C99以降) 被除数(割られる数)と同じ符号
Python / Perl 除数(割る数)と同じ符号 モダンなバージョン
Pascal 常に正の値 除数に負数や0を許可しない
Fortran / Ada / Lisp 関数により異なる mod(除数に準拠)とrem(被除数に準拠)を使い分ける

多項式の除法と剰余

多項式の世界でも、整数の除法と同様の仕組みが存在します。1変数多項式 $a(x)$ を 0 ではない多項式 $b(x)$ で割ると、以下の関係を満たす一意な商 $q(x)$ と剰余 $r(x)$ が得られます: $a(x) = b(x)q(x) + r(x)$

ここでの重要な条件は、剰余 $r(x)$ の次数が除数 $b(x)$ の次数よりも低いことです。この性質により、剰余が一意に定まります。このような除法が定義できる環(数学的構造)は「ユークリッド整域」と呼ばれます。

特に、多項式 $f(x)$ を $(x - k)$ で割った場合の剰余は、定数 $r = f(k)$ となることが知られており、これが多項式剰余定理の根幹となっています。

Frequently Asked Questions

剰余と「差」は何が違うのですか?

日常会話や初等教育では、引き算の残りを「あまり」と呼ぶことがありますが、数学的に「剰余」という言葉を使う場合は、通常、除法(割り算)の結果として得られる値を指します。単純な引き算の結果は正確には「差」と呼ばれます。

なぜプログラミング言語によって剰余の結果が異なるのですか?

負の数を割った際に、剰余を「常に正にするか」「割られる数に合わせるか」「割る数に合わせるか」という設計思想が言語ごとに異なるためです。用途に応じて適切な演算子(modやremなど)を選択する必要があります。

最小絶対剰余とはどのような時に便利ですか?

数値がある基準値の倍数からどれだけ離れているかを測る際、正負に関わらず「最も近い整数倍」を基準にしたい場合に便利です。例えば、43を5で割ったとき、3よりも-2の方が0に近いため、絶対値としての誤差を最小限に抑えられます。

多項式の剰余定理を使うメリットは何ですか?

複雑な多項式の割り算を実際に行わなくても、特定の値を代入するだけで剰余(あまり)を瞬時に求めることができるため、計算時間を大幅に短縮でき、因数分解などの解析に非常に有用です。

References

  1. , p. 97.
  2. , p. 30. But if the remainder is 0, it is not positive, even though it is called a "positive remainder".
  3. , p. 32
  4. .
  5. "6.7.2.2". Pascal ISO 7185:1990 (PDF) (Report).
  6. "6.5.6 Multiplicative operators". C23 standard (ISO/IEC 9899:2024) — working draft N3220 (PDF) (Report). 22 February 2024.
  7. "Built-in Functions — Python documentation". Retrieved 26 April 2026.
  8. , p. 154.
  9. , p. 267.
  10. , p. 157.