あなたの映画力を試せる!POPLETA映画検定(無料) >>

こんばんは。

基本情報技術者の関数のことで教えてください。
除算して剰余を返す関数なのですが、

例1:剰余(10,3)は1を返す
例2:剰余(-10,3)は2を返す(!?)

と説明がなっています。

(-10)÷3=-3...-1 なのだと思うのですが違うのでしょうか?!

詳しい方、どうぞよろしくお願いいたします。
すごく気になっています。

A 回答 (3件)

この回答が良さそうです。


http://oshiete.goo.ne.jp/qa/1170385.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
リンク先を読んでみると私の考えも間違えではないようで、
「仕様」により異なるようですね。
まさか、excelとVBで仕様が異なっていたとは!
頭が痛いです。掲載されている、仕様に注意してみます。

お礼日時:2011/07/29 01:09

非除数÷除数=商…剰余 において,



(a) 剰余は除数の絶対値より小さい
(b) 除数と剰余の符号は同じ

という関係があります。

----------------
最初の例として,-10÷-3 と -10÷3 を検討してみます。
数直線を描き,-10から0に向かって3つずつ取り崩していくと
(a)を満たす値は2つ存在します。

-10 → -7 → -4 → -1 → 2
―+――+――+――+0―+―

(b)より剰余は次のようになります。
-10÷-3 の剰余は -1
-10÷3 の剰余は 2

----------------
次の例として,10÷3 と 10÷-3 を検討してみます。
数直線を描き,10から0に向かって3つずつ取り崩していくと
(a)を満たす値は2つ存在します。

 -2 ← 1 ← 4 ← 7 ← 10
―+―0+――+――+――+――

(b)より剰余は次のようになります。
10÷3 の剰余は 1
10÷-3 の剰余は -2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
>(a) 剰余は除数の絶対値より小さい
>(b) 除数と剰余の符号は同じ
なるほど!こんなルールがあったのですね!
たいへんよくわかりました。

お礼日時:2011/07/29 00:49

(3,3)=0


(2,3)=2
(1,3)=1
(0,3)=0

ここまでは文句有りませんよね?
続けると

(-1,3)=2
(-2,3)=1
(-3,3)=0
(-4,3)=2
(-5,3)=1
(-6,3)=0
(-7,3)=2
(-8,3)=1
(-9,3)=0
(-10,3)=2

です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。しかし、私の理解力では少々無理があります。
0,2,1をリピートする法則性は理解できました。

お礼日時:2011/07/29 00:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qマイナスの割り算の公式

マイナスの割り算が分かりません。
公式などありますでしょうか?

(1)A ÷ (-B) =Z 余りY
(2)(-A) ÷ B =Z 余りY
(3)(-A) ÷ (-B) =Z 余りY

ZとYは何?

マイナスの割り算で検索したところヒットした項目があったのですが、それを読んでも理解できませんでした。

マイナスで割るってことは物理的にどういうことなのでしょうか?

よろしくお願いします

Aベストアンサー

これは、やっかいですが大切な問題です。
以前に関連する質問があります。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1057715

結論をいうと、どうするかが決まっていません。自分が解きたい問題に応じて、あるいは割り算の使いみちに応じて、どちらかに定義しなければなりません。特に、コンピュータプログラミングでは、お使いの言語で割り算の商と剰余がどう定義されているかを確かめておくことが大切です。

まずは、大原則です。

「A÷B=Q余りR」⇒「A=B×Q+R」かつ「|R| <|B|」

「A÷B=Q余りR」であれば、必ず「A=B×Q+R」であり、|R| <|B| でなければなりません。| | の記号は絶対値を表します(プラスの値はそのまま、マイナスの値はプラスに変えるという意味です)。(例、-3の絶対値は+3)

さて、ここで問題が生じます。
<Aがマイナス、Bがプラスのとき>
たとえば、
ア.(-13)÷5=-2あまり-3 ⇒ -13 = 5×(-2)+(-3), |-3|<|5|
イ.(-13)÷5=-3あまり2 ⇒ -13 = 5×(-3)+2, |2|<|5|
と2通りの答があり、どちらも上の大原則を満たします。これに対して、
http://www.hokuriku.ne.jp/fukiyo/math-qa/amari.htm
上記のページは、余りは常に正という立場です。これは、数学計算の場合、剰余類を使うときに都合がよいからです。そのため、イ.を定義としています。岩波数学辞典でもイ.の定義を採用しています。しかし、コンピュータプログラミングの世界では、C言語の%やdiv関数のようにア.を採用することが多いのです。ExcelのMOD関数ではイですが、VBのMod関数はアです。

<Aがプラス、Bがマイナスのとき>
たとえば、
ウ.13÷(-5)=-2あまり3 ⇒ 13 = (-5)×(-2)+3, |3|<|-5|
エ.13÷(-5)=-3あまり-2 ⇒ 13 = (-5)×(-3)-2, |-2|<|-5|
と2通りの答があり、どちらも上の大原則を満たします。余りを常に正とする立場では、ウを採用することになります。岩波数学辞典には、除数が負の場合の定義がありません。C言語ではウですが、ExcelのMOD関数ではエです。VBのMod関数はウです。

<Aがマイナス、Bがマイナスのとき>
たとえば、
ウ.(-13)÷(-5)=2あまり-3 ⇒ -13 = (-5)×2+(-3), |-3|<|-5|
エ.(-13)÷(-5)=3あまり2 ⇒ -13 = (-5)×3+2, |2|<|-5|
と2通りの答があり、どちらも上の大原則を満たします。余りを常に正とする立場では、エを採用することになります。しかし、C言語でもExcelのMOD関数でもウを採用しています。

このページも参考になります。
http://www.keep-on.com/excelyou/2000lng2/200006/00060016.txt

参考URL:http://www.keep-on.com/excelyou/2000lng2/200006/00060016.txt

これは、やっかいですが大切な問題です。
以前に関連する質問があります。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1057715

結論をいうと、どうするかが決まっていません。自分が解きたい問題に応じて、あるいは割り算の使いみちに応じて、どちらかに定義しなければなりません。特に、コンピュータプログラミングでは、お使いの言語で割り算の商と剰余がどう定義されているかを確かめておくことが大切です。

まずは、大原則です。

「A÷B=Q余りR」⇒「A=B×Q+R」かつ「|R| <|B|」

「...続きを読む


人気Q&Aランキング