1

最近、(ab)%nを計算する必要がある問題を解決しました.abが正の数の場合、結果は自明でしたが、負の数の場合、得られた結果は混乱しているようです..これを計算する方法を知りたかっただけです負の数の結果。

モジュロ演算子のプロパティを扱うリンクは大歓迎です。

4

1 に答える 1

2

http://en.m.wikipedia.org/wiki/Modulo_operation

多くのプログラミング言語(C、Java)では、モジュロ演算子は、モジュラスが最初のオペランドと同じ符号を持つように定義されています。これは、次の方程式が成り立つことを意味します。

(-a) % n = -(a % n)

たとえば、8%3は2であるため、-8%3は-2になります。

Pythonなどの他の方法では、nでダイビングするときに、正の余りとして代わりに%nを計算します。

(-a) % n = n - (a % n)

たとえば、3-(8%3)は3-2であるため、-8%3は1です。

モジュラー算術では、除算に関して「等式」(またはその項が必要な場合は合同)が定義されているため、nの倍数を加算または減算しても結果は変わりません。Xはnの倍数の場合は0に等しくなります。 ABがnの倍数である場合、AはBに等しくなります。たとえば、-2-1 = -3は3で割り切れるので、-2は3を法とする1に等しくなります。

于 2013-03-25T07:42:05.577 に答える