3
23 % -5 = -2
23 % 5 = 3

明日試験があるので、これを理解する方法を誰か説明してもらえますか? 私が言いたいの-5 * -5 =2525 -2 = 23、彼らが23. これは正しいです?

4

5 に答える 5

8

Python では、剰余の符号は分母の符号と同じです (これは、分子の符号と同じである C などの言語とは異なります)。

a, b = divmod(n, d)数学的には、 if 、 thenが常に保証されていますa*d + b == n

23//5 == 4and 23//-5 == -5(Python は常にフロア分割を行います)に注意してください。したがって、あなたが言ったように、 と が4*5 + 3 == 23あります。-5*-5 - 2 == 23

于 2012-09-28T02:06:28.887 に答える
0

目的のために問題を調べる最も簡単な方法は、次の定義を検討することです。

mod n = Rここで、剰余Rは0<=Rを満たす必要があります

したがって、mod -5演算の場合、0 <= R <-4、つまりRは0、-1、-2、-3、-4のいずれかになります。

つまり、Rを上記の範囲に入れるまで、aからnを効果的に減算(または加算)します。

それで

23%5は(23-4 * 5)= 23-20 = 3

しかし

23%-5は(23 + 5 *(-5))= 23-25 = -2

于 2012-09-28T02:11:01.707 に答える
0

4*5 = 20 なので 23 % 5 = 3 で、23 を 20 で割ると余りが 3 になります。

23 % -5 については、その答えはプログラミング言語によって異なります。

Python の場合、除数の値が常に返されるため -2 であり、5*5 = 25 であり、Python で 23 を 25 で除算すると、-2 の剰余が得られます (除数が負であるため、負でなければならないため)。 ) したがって、25 - 2 = 23 になります。

正式な数学的定義では、b は正の整数であることに注意してください。

于 2012-09-28T02:15:34.313 に答える
0

N=kM+R と書きましょう。

23 = -5*(-5) - 2、および 23 = 4*5 + 3 です。

于 2012-09-28T02:05:03.130 に答える