Home負の数の除法プログラミング言語

1. 自然数の除法

1. 自然数の除法
2. 文科省が指定した除法
3. 正の剰余・負の剰余
4. 除数と同符号の剰余
5. 最小非負剰余
6. 被除数と同符号の剰余
7. 絶対値最小剰余

商と剰余の存在

(定理)  非負の実数 a と正の実数 b に対して,a−r が b で割り切れるような 0≤r<b の範囲の実数 r が存在する。

(証明)  上のような r が存在すると仮定する。 \[ b\mid a-r,\quad 0\le r<b, \tag{1} \] a−r を b で割った商を q とすると,a−r=bq より r=a−bq であるから, \[ 0\le a-bq<b \] が成り立つ。 q について解くと \[ \frac{a}{b}-1<q\le \frac{a}{b} \] となるので,q は床関数を用いて \[ q=\left \lfloor \frac{a}{b}\right \rfloor \tag{2} \] と表せる。 逆に,この q に対して r=a−bq と定めると,0≤r<b で,a−r は b で割り切れる。 (証明終)

自然数の除法

割られる数 a のことを被除数,割る数 b のことを除数といい,上で求めた q のことを商,r のことを剰余という。 表は幾つかの数を3で割った結果を示したものである。

被 A除 B商 Q余 R
5312
4311
3310
2302
1301
0300

次のページへ

1 2 3 4 5 6 7 Next

2. 文科省が指定した除法

1. 自然数の除法
2. 文科省が指定した除法
3. 正の剰余・負の剰余
4. 除数と同符号の剰余
5. 最小非負剰余
6. 被除数と同符号の剰余
7. 絶対値最小剰余

負の被除数と正の除数に対する除法

文部科学省検定済教科書には,被除数が負の場合の除法について書かれている。 被除数 a が負の場合も正の場合と同様に,商を q=⌊a/b⌋,剰余を 0≤r<b とする。 除数 b が負の場合の除法については何も書かれていない。

被 A除 B商 Q余 R
5312
4311
3310
2302
1301
0300
−13−12
−23−11
−33−10
−43−22
−53−21

多くのプログラミング言語において,これとは異なる商と剰余が定義されている。

東京書籍 数学A Advanced「除法の性質」

aを整数,bを正の整数とし,aをbで割ったときの商をq,余りをrとすると,a=bq+r, 0≤r<b
文部科学省検定済教科書 2 東書 数A 317 ISBN978-4-487-16529-2

啓林館 数学A 改訂版「整数の除法」

整数aと正の整数bに対して,a=bq+r(0≤r<b)を満たす整数q,rをそれぞれ,aをbで割ったときの商,余りという。
文部科学省検定済教科書 61 啓林館 数A 325 ISBN978-4-402-07543-9

次のページへ

1 2 3 4 5 6 7 Next

3. 正の剰余・負の剰余

1. 自然数の除法
2. 文科省が指定した除法
3. 正の剰余・負の剰余
4. 除数と同符号の剰余
5. 最小非負剰余
6. 被除数と同符号の剰余
7. 絶対値最小剰余

定理1(正の除数,正の剰余)

(定理)  任意の被除数 a と正の除数 b に対して,0≤r<b の範囲の剰余 r が存在する。

(証明)  整数 q を \[ q=\left \lfloor \frac{a}{b}\right \rfloor \] とすると,q は \[ \frac{a}{b}-1<q\le \frac{a}{b} \] を満たす唯一つの整数である。 r=a−bq とすると, \[ 0\le r<b \] が成り立つ。 除数が b>0 のとき,商が q=⌊a/b⌋,剰余の範囲が 0≤r<b となる除法を定義できる。 (証明終)

定理2(正の除数,負の剰余)

(定理)  任意の被除数 a と正の除数 b に対して,−b<r≤0 の範囲の剰余 r が存在する。

(証明)  整数 q を \[ q=\left \lceil \frac{a}{b}\right \rceil \] とすると,q は \[ \frac{a}{b}\le q<\frac{a}{b}+1 \] を満たす唯一つの整数である。 r=a−bq とすると, \[ -b<r\le 0 \] が成り立つ。 除数が b>0 のとき,商が q=⌈a/b⌉,剰余の範囲が −b<r≤0 となる除法を定義できる。 (証明終)

定理3(負の除数,正の剰余)

(定理)  任意の被除数 a と負の除数 b に対して,0≤r<−b の範囲の剰余 r が存在する。

(証明)  整数 q を \[ q=\left \lceil \frac{a}{b}\right \rceil \] とすると,q は \[ \frac{a}{b}\le q<\frac{a}{b}+1 \] を満たす唯一つの整数である。 r=a−bq とすると, \[ 0\le r<-b \] が成り立つ。 除数が b<0 のとき,商が q=⌈a/b⌉,剰余の範囲が 0≤r<−b となる除法を定義できる。 (証明終)

定理4(負の除数,負の剰余)

(定理)  任意の被除数 a と負の除数 b に対して,b<r≤0 の範囲の剰余 r が存在する。

(証明)  整数 q を \[ q=\left \lfloor \frac{a}{b}\right \rfloor \] とすると,q は \[ \frac{a}{b}-1<q\le \frac{a}{b} \] を満たす唯一つの整数である。 r=a−bq とすると, \[ b<r\le 0 \] が成り立つ。 除数が b<0 のとき,商が q=⌊a/b⌋,剰余の範囲が b<r≤0 となる除法を定義できる。 (証明終)

次のページへ

1 2 3 4 5 6 7 Next

4. 除数と同符号の剰余

1. 自然数の除法
2. 文科省が指定した除法
3. 正の剰余・負の剰余
4. 除数と同符号の剰余
5. 最小非負剰余
6. 被除数と同符号の剰余
7. 絶対値最小剰余

除数と同符号の剰余・負の無限大への切り捨ての商

正の剰余・負の剰余の選択について特にきまりはなく,どちらを用いるかは任意である。 ここでは除数と剰余が同符号になるような除法を定める。 除数が正(b>0)の場合の剰余を非負(0≤r<b)となるように,除数が負(b<0)の場合の剰余を非正(b<r≤0)となるように,除法を定義することができる。 \begin{align*} b>0 &\implies q=\lfloor a\div b\rfloor,\;0\le r<b\\ b<0 &\implies q=\lfloor a\div b\rfloor,\;b<r\le 0 \end{align*} この型の除法では,剰余 r は除数 b と同符号(a=0 や r=0 も同符号とみなす)になり,商 q は a÷b の負の無限大への切り捨て(Round_Floor)になる。

被 A除 B商 Q余 R
5312
4311
3310
2302
1301
0300
−13−12
−23−11
−33−10
−43−22
−53−21
被 A除 B商 Q余 R
5−3−2−1
4−3−2−2
3−3−10
2−3−1−1
1−3−1−2
0−300
−1−30−1
−2−30−2
−3−310
−4−31−1
−5−31−2

一部のプログラミング言語でこの除法が既定になっている。

次のページへ

1 2 3 4 5 6 7 Next

5. 最小非負剰余

1. 自然数の除法
2. 文科省が指定した除法
3. 正の剰余・負の剰余
4. 除数と同符号の剰余
5. 最小非負剰余
6. 被除数と同符号の剰余
7. 絶対値最小剰余

最小非負剰余・ユークリッド除法

除数が正(b>0)の場合の剰余を非負(0≤r<b)となるように,除数が負(b<0)の場合の剰余を非負(0≤r<−b)となるように,除法を定義することができる。 \begin{align*} b>0 &\implies q=\lfloor a\div b\rfloor,\;0\le r<b\\ b<0 &\implies q=\lceil a\div b\rceil,\;0\le r<-b \end{align*} この型の除法では,剰余 r が非負になる。その剰余のことを最小非負剰余という。

被 A除 B商 Q余 R
5312
4311
3310
2302
1301
0300
−13−12
−23−11
−33−10
−43−22
−53−21
被 A除 B商 Q余 R
5−3−12
4−3−11
3−3−10
2−302
1−301
0−300
−1−312
−2−311
−3−310
−4−322
−5−321

この除法を既定とするプログラミング言語はわずかである。

次のページへ

1 2 3 4 5 6 7 Next

6. 被除数と同符号の剰余

1. 自然数の除法
2. 文科省が指定した剰余
3. 正の剰余・負の剰余
4. 除数と同符号の剰余
5. 最小非負剰余
6. 被除数と同符号の剰余
7. 絶対値最小剰余

被除数と同符号の剰余・0への切り捨ての商

被除数が非負で除数が正(a≥0, b>0)の場合の剰余を非負(0≤r<b),被除数が非正で除数が正(a≤0, b>0)の場合の剰余を非正(−b<r≤0)となるように, 被除数が非負で除数が負(a≥0, b<0)の場合の剰余を非負(0≤r<−b),被除数が非正で除数が負(a≤0, b<0)の場合の剰余を非正(b<r≤0)となるように,除法を定義することができる。 \begin{align*} a\ge 0,\;b>0 &\implies q=\lfloor a\div b\rfloor,\;0\le r<b\\ a\le 0,\;b>0 &\implies q=\lceil a\div b\rceil,\;-b<r\le 0\\ a\ge 0,\;b<0 &\implies q=\lceil a\div b\rceil,\;0\le r<-b\\ a\le 0,\;b<0 &\implies q=\lfloor a\div b\rfloor,\;b<r\le 0 \end{align*} この型の除法では,剰余 r は被除数 a と同符号(a=0 や r=0 も同符号とみなす)になり,商 q は a÷b の0への切り捨て(Round_Down)になる。

被 A除 B商 Q余 R
5312
4311
3310
2302
1301
0300
−130−1
−230−2
−33−10
−43−1−1
−53−1−2
被 A除 B商 Q余 R
5−3−12
4−3−11
3−3−10
2−302
1−301
0−300
−1−30−1
−2−30−2
−3−310
−4−31−1
−5−31−2

多くのプログラミング言語でこの除法が既定になっている。

次のページへ

1 2 3 4 5 6 7 Next

7. 絶対値最小剰余

1. 自然数の除法
2. 文科省が指定した剰余
3. 除数と同符号の剰余
4. 常に非負の剰余
5. 最小非負剰余
6. 被除数と同符号の剰余
7. 絶対値最小剰余

絶対値最小剰余・最近接丸めの商

正または負の除数 b に対して,−|b|/2≤r<|b|/2 または −|b|<r≤|b|/2 の範囲の剰余 r を定義することができ,その剰余のことを絶対値最小剰余という。

定理1

(定理)  任意の被除数 a と正の除数 b に対して,−b/2≤r<b/2 の範囲の剰余 r が存在する。

(証明)  整数 q を \[ q=\left \lfloor \frac{a}{b}+\frac{1}{2}\right \rfloor \] とすると,q は \[ \frac{a}{b}-\frac{1}{2}<q\le \frac{a}{b}+\frac{1}{2} \] を満たす唯一つの整数である。 r=a−bq とすると, \[ -\frac{b}{2}\le r<\frac{b}{2} \] が成り立つ。 除数が b>0 のとき,商が q=⌊a/b+0.5⌋,剰余の範囲が −b/2≤r<b/2 となる除法を定義できる。 (証明終)

定理2

(定理)  任意の被除数 a と正の除数 b に対して,−b/2<r≤b/2 の範囲の剰余 r が存在する。

(証明省略)  除数が b>0 のとき,商が q=⌈a/b−0.5⌉,剰余の範囲が −b/2<r≤b/2 となる除法を定義できる。

定理3

(定理)  任意の被除数 a と負の除数 b に対して,b/2≤r<−b/2 の範囲の剰余 r が存在する。

(証明省略)  除数が b<0 のとき,商が q=⌈a/b−0.5⌉,剰余の範囲が b/2≤r<−b/2 となる除法を定義できる。

定理4

(定理)  任意の被除数 a と負の除数 b に対して,b/2<r≤−b/2 の範囲の剰余 r が存在する。

(証明省略)  除数が b<0 のとき,商が q=⌊a/b+0.5⌋,剰余の範囲が b/2<r≤−b/2 となる除法を定義できる。

絶対値最小剰余の使用例

この型の除法では,商 q は a÷b の最近接丸め(Round_Half_Up または Round_Half_Down)になる。

被 A除 B商 Q余 R
532−1
4311
3310
231−1
1301
0300
−130−1
−23−11
−33−10
−43−1−1
−53−21
被 A除 B商 Q余 R
5−3−2−1
4−3−11
3−3−10
2−3−1−1
1−301
0−300
−1−30−1
−2−311
−3−310
−4−31−1
−5−321

この除法を既定とするプログラミング言語はわずかである。

次のページへ

1 2 3 4 5 6 7 Home

負の数の除法

Home負の数の除法プログラミング言語

2015.11.22 作成 / 2020.3.15 更新

Home › 負の数の除法