当第一个数字较小时,模除是如何工作的?

我把 python 的模除搞乱了,我知道它会吐出剩下的部分。

但如果第一个数比第二个小呢?

比如说

2% 5答案是2。

这是怎么回事?

2/5 = .4

68594 次浏览

5进20次。

5 * 0 = 0

2-0 = 2.

答案是2。

你可以认为它是2/5 = 0,剩下的是2/5。

A% b = a 如果 a < b

2除以5(整数除法)等于0,余数为2。

这个有用吗

22  % 5 = 2
17  % 5 = 2
12  % 5 = 2
7   % 5 = 2
2   % 5 = 2

也许是这个

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

2 = 0 x 5 + 2

例如2% 5答案是2。这是怎么回事?2/5 = .4!

模固有地产生一个整数结果,而除法可以是一个整数或浮点运算。你观察到的2/5等于0.4表明你是根据浮点数来思考的。在这种情况下,.4本身的 余数,表示不同。“0.4”的整数部分是“0”,其余部分是“ .4”。整数除法运算的其余部分与浮点运算的小数部分(俗称“十进制”)完全相同,只是表达方式不同。

例子的小数部分,0.4,可以表示为0.4或者2/5(2/5) ; 无论哪种方式都是一样的。注意,当它写成2/5时,小数部分的分母(除数)与原问题的分母(除数)相同,而小数部分的分子(除数)是整数除法中的“余数”。不管怎么看,商的 < em > 小数部分 余下部分表示同样的东西(除数不能平均除以红利的部分) ,只是表达方式不同。

当第一个数较小时,很容易计算出模的结果。结果总是等于第一个(小)数

3 % 5 = 3
5 % 10 = 5
78 % 112 = 78

你自己试试。

余数中的分子就是模数答案 无论如何,无论分子比分母大还是小。

12 % 5 = 2 , because 12 / 5 = 2 and **2**/5


9 % 2 = 1 , because 9 / 2 = 4 and **1**/2

这样可能更合理。

5 % 89 = 5 , because 5 / 89 = 0 and **5**/89


5 % 365 = 5 , because 5 / 365 = 0 and **5**/365


5 % 6 = 5 , because 5 / 6 = 0 and **5**/6
a%b = a/b=c,
c*b=d,
a-d=modulo;

这就是巨蟒在修改两个数字的时候所做的。小数和大数之间的模总是小数。

国防部不工作与十进制... 国防部(A,B)你想要的结果,其中 A

没有数字可以乘以 5使你更接近 2

换句话说,x必须是 0才能满足方程: 5*x + r = 2

另一件需要注意的事情是,如果第一个数字(a)是一个负数,那么答案总是第二个数字与第一个数字(n-a)的差。

示例: a% n

  1. -5% 7 = 2-> 7-5 = 2
  2. 4% -9 = -5—— > 9-4 = -5(跟随较大数字的符号)

如果两个数都是负数,那么答案总是负数,等于较小的数。

  1. -5% -7 = -5
  2. -4% -9 = -4

为了理解同余关系,我建议你去可汗学院看看他们的帖子。他们还在同一页面上提供互动练习题。这是链接: https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-is-modular-arithmetic

简而言之:

使用以下公式:

A = BQ + R

A 是强红利

B 是 < strong > 除数

Q 是 < strong > 商

R 余额,是模的结果。

Q = (A/B)

记住,Q 总是趋向于最接近的最小整数。如果 Q = 0.2,那么 Q = 0.0。如果 Q = -1.2,那么 Q = -2.0。

如果 Q 没有小数,那么你的最终答案是0(R = 0)。


回答你的问题:

Q = (2/5) = 0.4,所以 Q = 0。

把它插入“ A = BQ + R”:

2 = 5 * 0 + R

R = 2.


希望这能有所帮助。正如我所说,你可以阅读更多关于可汗学院的内容。这里是链接: https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-is-modular-arithmetic

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

因为第二个数比较大,所以它进入第一个数0次,余数是第一个数的全部。

重新访问这个线程,我必须记住这个操作符是用来做什么的。我在这里提到了另一条线索:

识别何时使用模运算符

例如2% 5 = 2: 在实数中,余数是0,商是0.4 但是在编程中,2小于5意味着5 * 1 = 5所以它很低,除以0变得很小,也就是0。因此余数变成2,因为2-0 = 2;)

作为我们这些没有数学头脑的人的后续研究,我认为理解这个问题的部分原因在于,这个概念经常被简化为“当你把 x 除以 y 时剩下的东西”,当 x 变小时,就什么也不剩,也就是0。我更愿意说

  1. Y 完全进入 x 的次数是多少?
  2. 取这个数,乘以 y 得到尽可能接近 x 的结果
  3. 现在从 x 中减去步骤2得到的,这就是模。

所以在2(x)% 5(y)中:

  1. 5进入2完全没有次数,所以0
  2. 0(上述步骤的结果)乘以5(即 y)等于0
  3. 2(aka x)-0(上一步的乘积)是2

模的工作原理是给出除法后的余数,它的一个用处是
找出一个数字是偶数还是非偶数
代码示例:

// 4 % 2 means "2 divided by 2 is what, and what is the remainder? if I have a remainder, return it or else return 0"
if(4 % 2 == 0) {
alert("2 is even");
} else {
alert("2 is odd");
}

所以如果4% 2的余数是0,那么它就是偶数,或者是奇数。