所以我试图理解模数,但由于我有一个小的学习障碍,我一直在苦苦挣扎。我的问题是如何确定模方程的余数。如果 27%16=11 你怎么得到十一是我不明白的?
8 回答
如果你有 a % b = c,那么 c 是 a 除以 b 的余数。也就是说,如果你反复从 a 中减去 b,直到你不能再减去而不使它成为负数,那么得到的数字将是 c。
或者,如果您知道 / 运算符在大多数具有整数除法的编程语言中是如何工作的,如果 a % b = c,则 c 是满足 ((a / b) * b) + c = a 的数字。
模数是“余数”运算符。
考虑划分
27 / 16 = 1 r 11
27
被16
均匀的1
时间除,并且有一个余数(用 表示r
)11
。那么在整数除法的上下文中
27 / 16 = 1 <-- The integral number of times the right operand divides evenly into
the left (the number left of the 'r' from above)
27 % 16 = 11 <-- The 'remainder' of the division of left value by the right
(the number right of the 'r' above)
代数上 if k = x % y
, thenx - k
可以被整除y
27 是 (16 * 1) + 11。这里的十一是“余数”。这就是你获得模数的方式
您需要检查 27 中有多少次 16(即 1),然后您只需减少:
27 - (16 * 1) = 11
请按照以下步骤操作
- 用分子除以分母
如果余数大于分母 { 则将余数设为新分子并重复步骤 1、2 }else{
remainder is the result }
当您将一个数字除以另一个数字时,您可以在 Java 等语言中以两种方式进行。
如果您通过这样做使用浮点数,27.0 / 16.0
您会得到一个包含整数和小数部分的数字,例如1.6878
这就是1+11/16
所谓11
的余数。
如果您使用整数,那么您必须使用两种不同的操作来获得整数和小数。你可以做得到27 / 16
整数结果1
,你可以做得到27 % 16
余数11
。
16 x 2 = 32,大于 27。
16 x 1 = 16,小于 27 x 11。
16 < 27 < 32
因此16次分为27次。之后你有 27 - 16 这是除以 16 后剩下的 27 - 16 = 11。
27/27 = 1 没有剩余所以没有余数所以 27 % 27 = 0;
27 % 16 = 11,因为 16 不会均匀地进入 27,而是剩下 11。
请添加任何后续评论或问题,我很乐意进一步解释。我知道当你第一次学习这些东西时可能会很棘手。
好的,让我们以基本的方式执行此操作。
现在我需要27
除以16
, 27/16
。现在1X16=16, 2X16=32
.Now 27<32
,然后通过除以和27/16
之间的值。换句话说,还有剩余的部分,。1
2
27 -1X16=11
如果java
我们想立即取这个余数,我们使用%(modulo division)
然后27%16=11
27 / 16 = 1, remainder 11 In java 27%16=11