你能告诉我多少钱(-2) % 5?根据我的Python解释器是3,但你有一个明智的解释吗?
我读过在某些语言中,结果可能与机器有关,但我不确定.
我尝试用JS'模数函数计算,但没有得到正确的结果(应该是1).这是一段硬编码的代码.
var checkSum = 210501700012345678131468;
alert(checkSum % 97);
Result: 66
Run Code Online (Sandbox Code Playgroud)
问题出在这里?
此致,Benedikt
我正在开发一个sh脚本,我在一个WHILE循环中,每次迭代变量都会增加,我想每五次迭代保存一个文件.
我通常做的(比如用C语言)就是做一个if ( n % 5 == 0)测试,但我不知道这是否可行......?如果不是,有没有人有任何想法可以完成工作?
干杯!
在许多编程问题(例如一些Project Euler问题)中,我们被要求报告答案,将剩余的答案除以1,000,000,007.
为什么不是其他号码?
编辑:2年后,这就是我所知道的:数字是一个很大的素数,对这样一个问题的任何答案都是如此之大,以至于报告一个余数是有意义的(因为该数字可能对于本机数据类型来说太大了)处理).
我试图通过递增或递减1迭代jQuery对象数组.因此,对于递减部分,我使用此代码:
var splitted_id = currentDiv.attr('id').split('_');
var indexOfDivToGo = parseInt(splitted_id[1]);
indexOfDivToGo = (indexOfDivToGo-1) % allDivs.length;
var divToGo = allDivs[indexOfDivToGo];
Run Code Online (Sandbox Code Playgroud)
所以我有4个带id的元素:
div_0
div_1
div_2
div_3
Run Code Online (Sandbox Code Playgroud)
我期待它迭代为3 - 2 - 1 - 0 - 3 - 2 - 等等.
但它在零之后返回-1,因此它被卡住了.所以它迭代为:
3 - 2 - 1 - 0 - -1 - 卡住了
我知道我可以通过更改代码的第二行来修复它
indexOfDivToGo = (indexOfDivToGo-1 + allDivs.length) % allDivs.length;
Run Code Online (Sandbox Code Playgroud)
但我想知道为什么JavaScript不计算负模型.也许这对另一位编码人员也有帮助.
为什么以下代码打印255?
#include <stdint.h>
#include <stdio.h>
int main(void) {
uint8_t i = 0;
i = (i - 1) % 16;
printf("i: %d\n", i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我假设15,虽然i - 1评估为整数.
作为规范示例,考虑三角函数的参数减少问题,如计算xmod2π作为计算sin(x)的第一步.这种问题很难,因为你不能只使用fmod,因为y(在例子中为2π)不具有代表性.
我提出了一个简单的解决方案,适用于任意值y,而不仅仅是2π,我很好奇它是如何比较(性能)与典型的参数减少算法.
基本思想是将一个包含2 n mod y 值的表存储在log2(y)范围内的每个值n到最大可能的浮点指数,然后使用模运算的线性,将此表中的值相加在x的值中设置的位.它相当于N个分支和最多N个加法,其中N是浮点类型中的尾数位数.结果不一定小于y,但是它受N*y的限制,并且可以再次应用该过程以给出由log2(N)*y限定的结果,或者fmod可以简单地在此处使用具有最小误差的结果.
这可以改善吗?并且典型的三角参数约简算法是否适用于任意y或仅适用于2π?
假设我有类似的东西:
#define SIZE 32
/* ... */
unsigned x;
/* ... */
x %= SIZE;
Run Code Online (Sandbox Code Playgroud)
将在x % 32通常被减少到x & 31由最C/C++编译器,如GCC?
gcc constants modulo compile-time-constant compiler-optimization
这是算法课程简介中的一个问题:
你有一个n个随机正整数的数组(数组不需要排序或元素唯一).建议使用O(n)算法来找到可被n整除的最大元素总和.
使用动态编程在O(n 2)中找到它并使用余数0,1,2,...,n - 1存储最大和是相对容易的.这是一个JavaScript代码:
function sum_mod_n(a)
{
var n = a.length;
var b = new Array(n);
b.fill(-1);
for (var i = 0; i < n; i++)
{
var u = a[i] % n;
var c = b.slice();
for (var j = 0; j < n; j++) if (b[j] > -1)
{
var v = (u + j) % n;
if (b[j] + a[i] > b[v]) c[v] = b[j] + …Run Code Online (Sandbox Code Playgroud)