当第一个数字较小时,模运算如何工作?

Pet*_*ete 42 modulo

我正在搞乱python中的模运算,我明白它会吐出余数.

但是,如果第一个数字小于第二个数字怎么办?

例如

2%5答案是2.

这是如何运作的?

2/5 = .4

jrh*_*cks 45

这有帮助吗?

22  % 5 = 2 
17  % 5 = 2 
12  % 5 = 2 
7   % 5 = 2 
2   % 5 = 2
Run Code Online (Sandbox Code Playgroud)

也许这个

22 / 5 = 4 + 2/5
17 / 5 = 3 + 2/5
12 / 5 = 2 + 2/5
7  / 5 = 1 + 2/5
2  / 5 = 0 + 2/5
Run Code Online (Sandbox Code Playgroud)


Med*_*Man 28

五次进入2次零次.

5*0 = 0

2-0 = 2.

答案是2


qpi*_*ngu 17

2除以5(整数除法)为0,余数为2.


Pas*_*ent 13

2 = 0 x 5 + 2


pho*_*ger 10

例如2%5答案是2.这是如何工作的?2/5 = .4!

Modulo固有地产生整数结果,而除法可以是整数或浮点运算.您对2/5等于0.4的观察表明您正在考虑浮点数.在这种情况下,.4本身就是余数,表达方式不同."0.4"的积分部分为"0",余数部分为".4".整数除法运算的其余部分与浮点运算的小数(或"十进制",在通俗术语中)部分完全相同,只是表达方式不同.

你的例子的小数部分,0.4,可以表示为0.4或2/5(五分之二); 无论哪种方式都是一样的.注意,当它被写为2/5时,小数部分的分母(除数)与原问题的分母(除数)相同,而小数部分的分子(被除数)则被称为整数除法中的"余数".无论你如何看待它,商的小数部分余数代表相同的东西(被除数部分不能被除数均分),只是用不同的方式表达.

  • 第一条评论中的用户仅仅因为他们不理解就对此提出异议是错误的。这完全有道理,并且很好地解释了运算符背后的数学原理。将“余数”视为表达除法结果的小数部分的不同方式对我很有帮助! (2认同)

Dar*_*der 10

如果第一个数字较小,那么答案又是第一个数字。

因为第二个数字更大,它“进入”第一个数字零次,余数是第一个数字的全部。

编辑:重新访问此线程,我必须记住此运算符的用途。我在这里提到了另一个线程:

识别何时使用模运算符


Dou*_*erg 8

当第一个数字较小时,很容易弄清楚模数的结果.结果始终等于第一个(较小)数字

3 % 5 = 3
5 % 10 = 5
78 % 112 = 78
Run Code Online (Sandbox Code Playgroud)

自己试试吧.


akf*_*akf 5

您可以将其视为2/5 = 0,其余为2的5.