我根据以下表达式理解模运算符:
7 % 5
这将返回 2,因为 5 会变成 7 一次,然后给出剩下的 2,但是当您反转此语句以阅读时,我会感到困惑:
5 % 7
这给了我 5 的值,这让我有点困惑。 7虽然不能整成5,但有一部分能整成5,为什么不是没有余数,就是有正负2的余数呢?
如果它是根据 7 根本不进入 5 的事实来计算 5 的值,为什么余数不是 7 而不是 5?
我觉得我对模运算符的理解缺少一些东西。
(此解释仅适用于正数,因为否则取决于语言)
定义
The Modulus是一个数字除以另一个数字的欧几里得除法的余数。%
被称为模运算.
例如,9
除以4
equals 2
但它仍然存在1
. Here, 9 / 4 = 2
and 9 % 4 = 1
.
在你的例子中:5除以7得到0但它仍然是5(5 % 7 == 5
).
计算
模运算可以使用以下等式计算:
a % b = a - floor(a / b) * b
-
floor(a / b)
代表你可以除的次数a
by b
-
floor(a / b) * b
是完全成功共享的金额
- 总数 (
a
) 减去共享的内容等于除法的余数
应用到最后一个例子,这给出:
5 % 7 = 5 - floor(5 / 7) * 7 = 5
模运算
也就是说,你的直觉是它可能是 -2 而不是 5。实际上,在模算术中,-2 = 5 (mod 7)
因为 Z 中存在 k 使得7k - 2 = 5
.
你可能没有学过模运算,但你可能使用过角度,并且知道 -90° 与 270° 相同,因为它是模 360。它很相似,它包起来!拿一个圆来说,它的周长是 7。然后你读到 5 是哪里。如果你尝试用 10,它应该是 3,因为10 % 7
is 3.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)