了解模数运算符 %

2023-12-22

我根据以下表达式理解模运算符:

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(使用前将#替换为@)

了解模数运算符 % 的相关文章

  • 求大 n 和 k 模 m 的二项式系数

    我想计算 nCk mod m 具有以下约束 n k m 10 9 7 我读过这篇文章 但这里 m 的值为 1009 因此 使用卢卡斯定理 我们只需要计算 1009 1009 个不同的 aCb 值 其中 a b 如何在上述限制下做到这一点 我
  • 求解大数的模线性同余

    我正在寻找一种比我在 stackoverflow 上找到的算法更好的算法来处理 4096 字节数 我正在达到最大递归深度 来自 stackoverflow 帖子的代码 我复制 粘贴了它 但丢失了原始链接 def linear congrue
  • Javascript 中模数的优先顺序是什么?

    如果我有以下代码 var num 15 2 6 4 例如 我想知道输出是什么 特别是我想知道模数的优先顺序 由 象征 取模是在加法和乘法运算之前还是之后进行 Edit 我已经看过人们将我链接到的文章 MDN 运算符优先级 在提出问题之前已经
  • 如何使用 fmod 并避免精度问题

    我将把这个问题归结为最简单的形式 让我们从 0 5 0 开始迭代 步长为 0 05 并打印出 X 每乘以 0 25 for double d 0 0 d lt 5 0 d 0 05 if fmod d 0 25 is equal 0 pri
  • 为什么 Java 的 % 运算符对于负股息给出的结果与我的计算器不同?

    为什么在计算器上 1 mod 26 25 但是在 C 或 Java 中 1 26 1 我需要一个像计算器一样解决这个问题的程序 两者有区别吗 两个答案 25 和 1 都是有效的 只是不同的系统有不同的约定 我看到最常见的 数学 是 quot
  • 检查循环(模 16)数是否大于另一个?

    我有两个以 16 为模的循环整数 因此它们的值介于 0 到 15 之间 我需要比较两个数字以确定是否n 1大于n 0 n 1 gt n 0 显然 这没有准确定义 所以我定义n 1大于n 0如果小于前面8个 数字 否则小于n 0 如果不相等
  • 如何使用 frexp 实现双变量的模运算符?

    我正在关注Kernighan Pike UNIX 编程环境 书中的一个练习 练习 8 2 第 241 页 要求实现模运算符 double变量在C So 4 6 2 1 0 4 4 0 3 0 1 0 因此基本上是在实施dmod using
  • 使用模数 php 检测每 4 个

    我试图使用模数方法检测每第四篇文章 以在 WordPress 的布局中插入额外的代码 但我无法得到它 这是我的一个简短的例子 div class column div
  • 模运算符如何工作?

    假设我需要格式化数组的输出以显示每行固定数量的元素 我该如何使用模数运算来做到这一点 使用 C 下面的代码可以每行显示 6 个元素 但我不知道它是如何工作的以及为什么工作 for count 0 count lt size count co
  • 如何按升序对奇数数组进行排序,但将偶数保留在其位置?

    我只想对奇数进行排序而不移动偶数 例如 当我写 sortArray 5 3 2 8 1 4 预期结果是 1 3 2 8 5 4 我是 JavaScript 新手 在互联网上遇到了一个令我困惑的挑战 我通常不会在互联网上发布请求解决方案 但我
  • 判断一个数是完美数还是素数

    问题是 编写一个函数来判断一个数是素数还是完全数 到目前为止 我已经首先完成了完美的部分 这就是我所拥有的 include
  • Django 中使用 F() 进行模数查询

    我想过滤 Django 对象 使其 id modulo K N 这是在 python 中执行此操作的一种方法 但我希望它在 filter 中 for foo in Foo objects all if foo id K N print fo
  • 模运算符更改

    5 6 4 in C 03 states If both operands are nonnegative then the remainder is nonnegative if not the sign of the remainder
  • C:负数和余数背后的数学

    这似乎是处理 Remainder Mod 时被问到的第一件事 而我对此有点碰壁 我正在用一本教科书和一堆 C 代码自学编程 鉴于我没有真正的教练说 不 不 它实际上是这样工作的 我想我应该在这里尝试一下 不过 我还没有找到数学部分的结论性答
  • 为什么负数对向量大小取模不会得到负数? [复制]

    这个问题在这里已经有答案了 include
  • 为什么%运算符有时输出正,有时输出负?

    当我意识到一些奇怪的事情时 我正在统一编写一个脚本 在完成脚本后 我在视觉工作室控制台项目中测试了我的实现 class Program static void Main string args Console WriteLine 3 5 1
  • BigIntegers、gcd、模逆来查找公钥

    所以 我使用 java 来查找 RSA 密码的公钥 现在我不确定我在做什么 也不确定它是否正确 我有公钥的信息 C 5449089907 n p q 8271344041 q 181123 p n q 45667 d 53 phi n p
  • 在 PHP 中查找数字的倍数

    我想在 PHP 中找到一个数字的所有倍数 我正在使用这样的东西 if count 20 计算出如果 count不等于20 但我还需要这个脚本来检查是否 count不等于 20 40 60 80 100 120 140 160 等 有任何想法
  • 模数和余数之间的差异

    我正在做一些计算 运算符在java and python 在计算时我发现 处理负数时 运算符在两种语言中的工作方式有所不同 例如 21 4 1 Java 21 4 3 Python 所以我查看了 stackoverflow 上的一些帖子 发
  • 两个整数乘积的模

    我必须找到c c a b mod m a b c m 是 32 位整数 但 a b 可以超过 32 位 我正在尝试找出一种计算 c 的方法 而不使用 long 或任何 gt 32 位的数据类型 有任何想法吗 如果m是质数 事情可以简化吗 注

随机推荐