我搞乱了python中的模运算,我知道它会吐出剩余的部分。
但是如果第一个数字小于第二个呢?
例如
2 % 5 答案是 2。
这是如何运作的?
2/5 = .4
这有帮助吗
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
5 进入 2 零次。
5*0 = 0
2-0 = 2。
答案是2。
2 除以 5(整数除法)为 0,余数为 2。
2 = 0 x 5 + 2
当第一个数字较小时,计算模的结果真的非常容易。结果总是等于第一个(较小的)数字
3 % 5 = 3
5 % 10 = 5
78 % 112 = 78
自己试试吧。
如果第一个数字更小,那么答案就是第一个数字。
因为第二个数字更大,它“进入”第一个数字零次,余数是第一个数字的全部。
编辑:重新访问这个线程,我必须记住这个运算符的用途。我在这里提到了另一个线程:
例如 2 % 5 答案是 2。它是如何工作的?2/5 = .4!
取模本质上会产生整数结果,而除法可以是整数或浮点运算。您观察到 2/5 等于 0.4 表明您正在考虑浮点数。在这种情况下,0.4 本身就是余数,表达方式不同。“0.4”的整数部分是“0”,余数部分是“.4”。整数除法运算的余数与浮点运算的小数(或“小数”,通俗地说)部分完全相同,只是表达方式不同。
您示例的小数部分 0.4 可以表示为 0.4 或 2/5(五分之二);无论哪种方式都是一样的。注意写成 2/5 时,小数部分的分母(除数)与原题的分母(除数)相同,而小数部分的分子(除数)就是所谓的整数除法中的“余数”。不管你怎么看,商的小数部分和余数代表的是同一件事(被除数不能被除数整除的部分),只是表达方式不同。
您可以将其视为 2 / 5 = 0,余数为 2 of 5。
a % b = a 如果 a << b
余数中的分子是你的模答案,不管分子是大于还是小于分母。
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) 是负数,则答案始终是第二个数字与第一个数字 (na) 的差。
示例:a % n
如果两个数字都是负数,则答案将始终是负数,等于较小的数字。
作为对我们这些非数学脑的人的跟进,我认为理解这一点的部分问题在于,这个概念通常被简化为“当你将 x 除以 y 时剩下的东西”,当 x 是更小,什么都不是,又名 0。我更失败的证明方式可能是说
所以在 2 (as x) % 5 (as y) 中:
要了解模算术,我建议你去可汗学院阅读他们关于它的帖子。他们还在同一页面上有互动练习题。这是链接:https ://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-is-modular-arithmetic
简而言之:
使用以下等式:
A = BQ + R
A是股息
B是除数
Q是商
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
a%b = a/b=c,
c*b=d,
a-d=modulo;
这就是我认为 python 在修改两个数字时所做的事情。较小数字和较大数字之间的模数将始终是较小的数字。
没有任何数字可以相乘5
以使您更接近2
.
换句话说x
,必须0
满足方程:5*x + r = 2
。
MOD 不适用于十进制... MOD(A,B) 你想要 A 的结果
如果 2%5 = 2:在实际数学中,余数为 0,商为 0.4,但在编程中,它看到 2 小于 5 意味着 5*1=5,所以它变低,只需将其除以 0,就变成了less 是 0。因此余数变为 2,因为 2-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,则为偶数,否则为奇数。