我根据以下表达式理解Modulus运算符:
7 % 5
Run Code Online (Sandbox Code Playgroud)
这将返回2,因为5进入7一次,然后给出剩下的2,但是当您将此语句反转为:
5 % 7
Run Code Online (Sandbox Code Playgroud)
这给了我5的值,让我有点困惑.虽然整个7没有进入5,但它的一部分确实如此,为什么没有剩余或剩余的正面或负面2?
如果基于7根本不进入5的事实来计算5的值,为什么剩余部分不是7而不是5?
在我对模数运算符的理解中,我觉得这里有一些我不知道的东西.
Max*_*amy 92
(此解释仅适用于正数,因为它取决于语言,否则)
定义
该模是由另外一个号码的欧几里得除法的余数.%被称为模运算.
例如,9除以4等于2但它仍然存在1.在这里,9 / 4 = 2和9 % 4 = 1.

在你的例子中:5除以7得0,但它仍然是5(5 % 7 == 5).
计算
可以使用以下等式计算模运算:
a % b = a - floor(a / b) * b
Run Code Online (Sandbox Code Playgroud)
floor(a / b)代表你可以把次数a由bfloor(a / b) * b 是完全成功分享的金额a)减去共享的数量等于除法的余数应用于最后一个示例,这给出:
5 % 7 = 5 - floor(5 / 7) * 7 = 5
Run Code Online (Sandbox Code Playgroud)
模数运算
也就是说,你的直觉是它可能是-2而不是5.实际上,在模运算中,-2 = 5 (mod 7)因为它在Z中存在k这样7k - 2 = 5.
您可能没有学过模运算,但您可能已经使用了角度,并且知道-90°与270°相同,因为它是模360.它类似,它包裹!所以拿一个圆圈,并说它的周长是7.然后你读到5是什么.如果你尝试10,它应该是3,因为10 % 7是3.
Moh*_*aid 10
对于我来说,这里的一些答案很复杂。我将尝试再添加一个答案,以简化查看方式:
这个过程基本上是问两个问题:
例如7%5
(1)乘以5以获得7的数字是多少?(从0开始)
我们试试吧:
0 所以, 0 x 5 = 0
尽管如此,我们还是很矮,所以我们加一(+1)。
1 所以, 1 x 5 = 5
我们还没有得到7,所以我们加一(+1)。
2 所以, 2 x 5 = 10
现在我们超出了7。因此,这2是不正确的,让我们回到第一步(我们使用过的位置1)的值,结果是5。
(2)要得到7,我们需要加多少到5?
显然数字是2 7-5 = 2。
7 % 5 = 2;
Run Code Online (Sandbox Code Playgroud)
例如5%7
1-我们要乘以7以获得5的数字是多少?
我们试试吧:
0 所以, 0 x 7 = 0
我们还没有得到5,让我们尝试更大的数字。
1 所以, 1 x 7 = 7
哦,不,我们超出了范围5,让我们回到上一步使用0并得到结果0。
2- 0为了达到左侧数字的值,我们需要加多少(我们刚从步骤1得到的数字)5?
显然数字是5。 5-0 = 5
5 % 7 = 5
Run Code Online (Sandbox Code Playgroud)
希望能有所帮助。
正如其他人所指出的,模数是基于余数系统的.
我认为考虑模数的一种更简单的方法是将股息(要分割的数字)完全除以除数后剩下的.因此,如果我们考虑5%7,当你将5除以7时,7可以进入5只0次,当你从5减去0(7*0)时(就像我们在小学时学到的那样),那么其余的将是5(国防部).请参见下图.
0
______
7) 5
__-0____
5
Run Code Online (Sandbox Code Playgroud)
使用相同的逻辑,-5 mod 7将为-5(只有0 7可以进入-5和-5-0*7 = -5).使用相同的标记-5 mod -7也将是-5.一些有趣的案例:
5 mod(-3)= 2即5 - ( - 3*-1)
(-5)mod(-3)= -2即-5 - ( - 3*1)= -5 + 3
小智 5
这只是关于剩余部分。让我来告诉你怎么做
10 % 5=0
9 % 5=4 (because the remainder of 9 when divided by 5 is 4)
8 % 5=3
7 % 5=2
6 % 5=1
5 % 5=0 (because it is fully divisible by 5)
Run Code Online (Sandbox Code Playgroud)
现在我们应该记住一件事,mod意味着余数所以
4 % 5=4
Run Code Online (Sandbox Code Playgroud)
但为什么是 4?因为 5 X 0 = 0 所以 0 是最近的小于 4 的倍数,因此 4-0=4