自分用のお土産

a<0,b<0のとき
a÷bの余りの符号ってどうなるのですか?
(-6)÷(-4)=1余りー2
(-6)÷(-4)=2余り2
とどっちの計算が正しいのですか?負の数の割り算の余りの概念が分からず悩んでいます。計算機を利用したところ負の数÷負の数の余りは必ず負の数になるようです。どうしてなのですか?分からないので知っている人はぜひ教えていただきたいです。お願いします

A 回答 (8件)

In No.7


>  m = qn + r かつ 0 ≦ r < n

m, nが正の場合はこれで良いんですよ。でもnが負だとこの式は絶対に満たせないでしょ。
だから「どう拡張するか」が肝なんです。

ふつう
  m = qn + r かつ |r| < |n|
は要求します。これで答えは2通り。
あとは
  0 ≦ r < |n|
を要求するか、(質問の例では(-6)÷(-4)=2余り2)
  |m| = |q||n| + |r|
を要求するか。(質問の例では(-6)÷(-4)=1余りー2)
# 他の流儀もあったかな
    • good
    • 0

定義によるのでしょうけど、ちょっと調べたら



  m = qn + r かつ 0 ≦ r < n

が出てきました。
ここでは0≦r<nと決めてあるから。
余りは一通りになりますよね。

m=qn+rだけで考えると正数の割り算でも余りは無限に多くの場合が当てはまりますよ。
    • good
    • 0

既に回答があるように、定義しだいです。

計算機といっても処理系依存の場合もあり、一意には決まりません。計算機言語でも、Adaなど両方の演算を用意しているものもあります。
    • good
    • 0

No.3は間違いです。


No.3の参考URLでも後半で他の流儀もあると書かれているように、余りを正にするのも一つの流儀にすぎません。
プログラマーを侮辱するNo.3のような回答は許容できません。

整数の除算がどちらの結果になるかは定義しだいです。
先生が決めた定義があるならそれに従ってください。ない場合は一貫性を持てばどちらでも良いでしょう。
    • good
    • 1

「計算機を利用しても」とは言っても, プログラム言語によってどうなるかは異なりますね.

    • good
    • 0

一応、あまりは「正の数」って決めてあるようです。


計算機の場合はプログラムの仕方によってそのようになることも多いみたいですね。これは計算機のプログラマーが数学の決まりをよく知らなかったためこのような計算が広まってしまったのではないでしょうか。

参考URL:http://ja.wikipedia.org/wiki/%E4%BD%99%E3%82%8A# …
    • good
    • 0
この回答へのお礼

早急な回答ありがとうございます(^口^)
余りは正で定義するのですね。zzaさんの説明も分かりやすく、参考URLも分かりやすく助かりました。自分はパソコンでプログラムを作って計算したのですが、計算機では答えが負になってしまいます(;;)まじやっかいです。しかもこの問題はプログラミングの授業の先生が「テストにだすよ~」と言っていたのでプログラマーの誤った定義を書けばいいのかな???まじやっかいです(笑)
本当に分かりやすい説明ありがとうございました。今後良回答がでない限りポイントを送らせていただきます!!

お礼日時:2006/02/06 10:09

Aを割られる数、Bを割る数、Rを商、Qを余りとして割り算を等式で表すと



 A=B*R+Q

これにA=-6、B=-4、R=1を代入すると分かりますが、余り-2が正しいです。
 
    • good
    • 0
この回答へのお礼

早急な回答ありがとうございます(^口^)
A=B*R+Qていうのはすごい大事な式ですよね!確かに(-6)=(-4)*1+(-2)は成立しますね!!
でもやっかいなことに(-6)=(-4)(-2)+2でもその式は成立してしまうんです(;;)答えが二通りある割り算なんておかしいですもんね(;;)

お礼日時:2006/02/06 10:02

 私は専門家ではありません。


 わり算の基本は
    割られる数>割る数×商 だと思います。
 a<0,b<0の場合もa,bそれぞれの絶対値で考えれば、上の1あまり-2が正しいと思います。
    • good
    • 0
この回答へのお礼

早急な回答に感謝します(^口^)
割られる数>割る数×商
ですよね。絶対値を取って考えれば1余りー2で理にかなっていますよね(><)
でも本当の負の数の割り算の定義に基づいたらどう説明がなされるのでしょうかね?とても気になるところです!本当に早急な回答ありがとうございました!!

お礼日時:2006/02/06 09:57

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