问题标签 [modulo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
24932 浏览

modulo - 当我的数字从 1 开始而不是 0 时,我如何取模?

我想这个解决方案很简单,但我已经考虑了一段时间,无法想出一个优雅的解决方案。

我有一系列数字,例如1..10 = (1,2,3,4,5,6,7,8,9,10),它是循环的,这意味着最后一个数字之后的数字又是第一个数字(next(10)=1)。

对于范围内的给定数字i>0,我想计算下一个m和前m一个数字。例如next(5,1)=6 next(10,1)=1 next(10,2)=2 prev(5,2)=3 prev(1,1)=10 prev(1,2)=9

因为next我可以只取范围的长度在(i+m)%n哪里(在示例中)。但是因为我找不到一个优雅的解决方案。nn=10prev

0 投票
5 回答
1963 浏览

c - 在 C 中使用硬件定时器

好的,所以我有一些 C 代码来执行数学运算,这几乎可以花费任何时间(当然取决于提供给它的操作数)。我想知道是否有一种方法可以注册某种方法,该方法每n秒调用一次,可以分析操作的状态,即它当前处于什么迭代,可能使用硬件定时器中断或其他什么?

我问这个的原因是因为我知道实现它的常用方法是跟踪变量中的当前迭代;比如说,一个整数被调用progress并且在代码中有一个这样的 IF 语句:

但我相信一个 mod 操作需要相对较长的时间来执行,所以从优化的角度来看,将它放在一个循环中运行很多次的想法让我害怕。

所以我觉得有一种外部方式来发出进度打印信号是很好和有效的。有没有什么很好的方法来执行这个,或者简单的“mod check”是最好的(就优化而言)?

0 投票
10 回答
97247 浏览

python - Python中负数的模运算

我在 Python 中发现了一些关于负数的奇怪行为:

谁能解释发生了什么?

0 投票
9 回答
25509 浏览

x86 - 同时除法和取余数?

显然,x86(可能还有许多其他指令集)将除法运算的商和余数都放在单独的寄存器中。

现在,我们可能相信编译器会优化这样的代码,只使用一次调用来除法:

他们可能会这样做。尽管如此,是否有任何语言(或库,但主要是寻找语言)支持同时给出除法和模数结果?如果是这样,它们是什么,语法是什么样的?

0 投票
3 回答
199 浏览

java - Java 模数帮助

所以我有这个方法,当被调用时,方向增加 1。但是,最大值应该是 3,所以如果方向等于 3 并且方法被调用,那么它应该回到零。我有什么工作,但我确信有一种方法可以使用 % 运算符来做到这一点。谁能告诉我怎么做?

0 投票
3 回答
357 浏览

operators - 我怎么知道一个数字是否是另一个数字的倍数?

我尝试使用 6%2,但它总是将值设为 2 而不是 0。为什么以及如何解决这个问题?

0 投票
16 回答
246355 浏览

c++ - 如何在处理负数的 C/C++/Obj-C 中编写模 (%) 运算符

我最讨厌 C 派生语言(作为数学家)之一是

最好的解决方案是什么?

C++ 允许模板和运算符重载的可能性,但对我来说,这两者都是浑水。收到的例子很感激。

0 投票
2 回答
2565 浏览

math - 计算大数的模

全部,

如何计算 2^301 mod 77?我确实查看了StackOverflow链接。但是不明白625 mod 221 = 183 mod 221的步骤。转换是如何发生的?

0 投票
18 回答
948675 浏览

javascript - 如何在 JavaScript 中执行整数除法并分别获取余数?

JavaScript中,我如何获得:

  1. 给定整数进入另一个整数的次数?
  2. 其余的?
0 投票
5 回答
4111 浏览

c# - C#:使用模数数学递减时钟

尝试手动模拟 24 小时时钟的翻转(使用数学与使用时间跨度类)。递增部分很容易弄清楚如何从 23:00 翻转到 0:00 以及从 0:00 开始,但是让它走另一条路却变得非常令人困惑。这是我到目前为止所拥有的:

我发现的问题是当倒退时,如果模数在数字之间,它不会正确递减。示例:现在是 12:00,减去 61 分钟,我们知道时间将是 10:59,因为从 12:00 到 11:59 小时应该回滚 1 小时,然后从 11:00 回滚到 10 点 59 分。不幸的是,我计算它的方式:在这种情况下,newMin % 60 只获取第一个小时的回滚,但是由于第二个回滚在技术上是 -1.0166 作为余数,并且由于 mod 只返回一个整数,所以它四舍五入。我确定我在这里错过了一些基本的数学,但有人可以帮助我吗?

编辑:我已经用多种方式写了这篇文章。有些比其他的更接近,但我知道这比看起来更简单。我知道这似乎有点“他在做什么”,但你应该能够基本上看到我想要做什么。增加时钟并将其从 23:59 翻转到 0:00 很容易。事实证明,倒退并不容易。

好的,这是带有翻转的 incrementMinute。简单的。但试着倒退。不工作。