5

Python のドキュメントには、「% (モジュロ) 演算子は、最初の引数を 2 番目の引数で割った余りを生成します。

与えられた

a % b

私が知っている限り、剰余は A を B で均等に割り算した残りの数です。したがって、21 % 3 = 0、および -25 % 23 = -2 です。私が理解していないのは、A が負の場合に何が起こるかです。

例えば、

-23 % 22

譲るだろう

21

これは、-1 を法として合同である最初の正の整数です。しかし、-1 は -23 % 22 の余りです。Python の剰余演算子 % は % b の剰余を生成しませんが、B? と合同な剰余にある最初の正の整数を生成します。私は困惑している。

4

2 に答える 2

0

-23 を 22 で除算すると、-23 = -2 * 22 + 21 が得られます。Python では、「剰余」は常に 0 と除数の間になります (除数とは等しくありません)。正の約数の場合、商とモジュラスは数学で通常定義されているとおりです。一部のプログラミング言語では、負の剰余は正の除数とともに使用されますが、Python では使用されません。

于 2013-10-10T01:24:59.570 に答える