• 締切済み

マイナスの割り算

マイナスの割り算の余りはどうなりますか? -5 ÷ 3 のあまりは-2ですか?それとも1ですか? 私の持ってるmodの計算ができるスマホの計算機で計算すると-2となりますが マイナスはおかしいと説明しているサイトもあります マイナスは余りではなく「足りないで、余りは1である」と説明しています そう言われてみればそのような気もしますが計算する環境によって違うのでどうなってるのか疑問に思いました。 プログラミングを利用して結果を見た結果 pythonだと-5%3は1になります C/C++だと-5%3は-2になります あまりとしてはどちらが正しいのでしょうか?

みんなの回答

  • pooh26
  • ベストアンサー率49% (66/134)
回答No.8

Wikipediaで、剰余演算 に各プログラミング言語の実装についての記載があります。 Pythonは、% と math.fmod で実装が異なります。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.7

回答No.5の追加です。 被除数が負数のときの除算の余りをどのように定義するかが決め手になります。 -5÷3は小数を含む値が-1と-2の間にあります。 商を-1としたとき余りは-2と考え、商を-2としたときは余りを1と考えれば良いでしょう。 筆算で確かめれば考え方の違いが分るでしょう。 添付画像は筆算での計算過程を示したものです。 何方があなたの考えに合うかを再確認してください。 尚、Windows 10に付属の関数電卓では「-5 mod 3 = 1」ですが、Windows 8.1以前の関数電卓では「-5 mod 3 = -2」です。

noname#242965
noname#242965
回答No.6

電卓で計算したら -5÷3=-1.666・・・・・ ド出ました。学校で私もそのようにならいました。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>pythonだと-5%3は1になります >C/C++だと-5%3は-2になります >あまりとしてはどちらが正しいのでしょうか? どちらも正しいとされています。 双方に考え方の違いがあるようです。 -1が5個あり、3つの箱に分けるとそれぞれの箱に-1が1個ずつ入り、-1が2個余ります。 別の考え方として、3つの箱に-1を2個ずつ入れるには-1が1個足りません。 前者がC/C++で後者がpythonの考え方と推測します。 但し、pythonの考え方は被除数または除数が負数の場合にのみ適用されていると考えられます。(戻り値の符号は除数の符号が適用される) 尚、Microsoft ExcelのMOD関数もpythonと同様な処理になっているようです。

noname#242965
noname#242965
回答No.4

被除算数:-5 徐算数:3 割り算とは、被除算数に徐算数が何個含まれているかと言う 計算です。”3”は”-5”の中に何個も含まれていないので 計算不可です。”5”であれば計算可能ですが。

  • f272
  • ベストアンサー率46% (8477/18147)
回答No.3

余りとしてどのような定義を採用するかで,答えは変わります。 どれが正しいということはありません。

回答No.2

どれもただしいです どんな答えが必要かによって違うだけですから たとえばどちらでもない -5÷3=-5/3 という分数でも正しい答えです

  • nananotanu
  • ベストアンサー率31% (714/2263)
回答No.1

割られる数=割る数×商+余り の定義に戻れば、少なくとも『数学的』意味ははっきりすると思います。 プログラミングはあくまで「このように計算することとする」という『約束事』ですからね。

関連するQ&A