了解模数运算符 %

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 如何在上述限制下做到这一点 我
  • 模数运算符运行第一项,然后每第三项运行

    所以我需要它在第一个循环上运行 然后在每个第三个循环上运行 if k 3 k 1 echo div class modcontainer 对我来说似乎很简单 但我不了解模数 模数返回余数 而不是布尔值 这段代码将解析为true for 1
  • `java (0 % 2 != 0) == false`

    我一直卡住的部分是boolean 0 2 0 错误 我的意思是 如果 2 进入 0 0 次 那么余数就是 2 并且 2 不等于 0 所以这应该是真的 然而 当我将布尔值放入我的 java 程序中时 它会将其视为 false 有人知道为什么吗
  • 求解大数的模线性同余

    我正在寻找一种比我在 stackoverflow 上找到的算法更好的算法来处理 4096 字节数 我正在达到最大递归深度 来自 stackoverflow 帖子的代码 我复制 粘贴了它 但丢失了原始链接 def linear congrue
  • 如何使用 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
  • 如何在Python中找到pow(a,b,c)的逆序?

    pow a b c python中的运算符返回 a b c 如果我的价值观是b c 以及该操作的结果 res pow a b c 我怎样才能找到值a Despite the statements in the comments this i
  • 为什么 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
  • 如何按升序对奇数数组进行排序,但将偶数保留在其位置?

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

    问题是 编写一个函数来判断一个数是素数还是完全数 到目前为止 我已经首先完成了完美的部分 这就是我所拥有的 include
  • 如何在 MIPS 汇编中找到没有除法或模运算符的余数

    我想找到一种方法来知道一个整数是除以3还是7而不使用除法 因为它在MIPS汇编中非常慢 我做了很多研究但一无所获 有一种方法描述为格兰隆德和蒙哥马利 https gmplib org tege divcnst pldi94 pdf需要 奇
  • PHP 浮点模数不起作用

    我编写了一个函数 以便在必要时向数字添加逗号和零 但我陷入了模数函数的困境 根据我的PHP float 877 5 1 0 true 不应该877 5 1 0 5 它提醒你你需要的是什么fmod http www php net manua
  • 为什么 C++ 模运算符对于 -1 % str.size() 返回 0?

    我很困惑为什么以下代码会产生此输出 include
  • 用于创建元素行的 Angular2 模数功能

    我在重新创建和想象如何在 Angular2 中重新创建下面这段普通的 Javascript 代码时遇到了麻烦 我只是当场把它打出来 所以不用担心语法或逻辑错误 正如你所看到的 我正在循环遍历一个产品数组 如果迭代模数为 4 那么我将关闭带有
  • Python——如何强制枚举从 1 开始——或者解决方法?

    我有一个简单的 for 循环 for index key value in enumerate self addArgs khzObj nodes items 我想在每第三个项目之后启动一个新的 wx 水平 boxsizer 来创建一个每个
  • C:负数和余数背后的数学

    这似乎是处理 Remainder Mod 时被问到的第一件事 而我对此有点碰壁 我正在用一本教科书和一堆 C 代码自学编程 鉴于我没有真正的教练说 不 不 它实际上是这样工作的 我想我应该在这里尝试一下 不过 我还没有找到数学部分的结论性答
  • 如何计算 (a*b)%c 形式的模数?

    如何计算 a b c 形式的模数 我想计算两个 int 数字相乘的模数 它们几乎处于溢出阶段 这里 c 也是 int a b c a c b c c
  • BigIntegers、gcd、模逆来查找公钥

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

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

随机推荐