标签: modulus

Java模数运算符 - 为什么结果出乎意料?

我理解模数17/12 = 5.

为什么4+17 % 2-1价值4,(4+17) % 2-1价值是0

java expression operator-precedence modulus

0
推荐指数
1
解决办法
1205
查看次数

c中的模数运算符

我需要检查c中数字的可分性.如何在C中使用模数operatpr来检查一个数字是否可以被另一个数字整除?我试过这样做:

if (file_int % 3) {
    printf("Hoppity \n");
}
Run Code Online (Sandbox Code Playgroud)

虽然file_int等于9,但它不起作用.

我做错了什么?

谢谢

c c++ math modulus

0
推荐指数
1
解决办法
1272
查看次数

a/b mod m =(a mod m)/(b mod m)?

a/b mod m = (a mod m)/(b mod m)吗?

我试图为非常大的数字找到nCr mod m.如果a/b mod m = (a mod m)/(b mod m)那时认为我会解决我的问题.

这是项目欧拉.我正在使用使用阶乘的nCr公式.

binomial-coefficients modulus

0
推荐指数
1
解决办法
6479
查看次数

为什么编译器无法告诉结果是一个整数

我遇到了编译器这个有趣的行为:

如果我有

    public int GetInt()
    {
        Random rnd = new Random();
        double d = rnd.NextDouble();
        int i = d % 1000;

        return i;
    }
Run Code Online (Sandbox Code Playgroud)

我得到一个错误: Cannot implicitly convert type 'double' to 'int'. An explicit conversion exists (are you missing a cast?)

这实际上有意义的,因为1000可以是一个double,而结果modulo操作可能是double为好.

但在将代码更改为:

    public int GetInt()
    {
        Random rnd = new Random();
        double d = rnd.NextDouble();
        int i = d % (int)1000;

        return i;
    }
Run Code Online (Sandbox Code Playgroud)

错误仍然存​​在.
据我所知,编译器拥有所有信息,以确定modulo运算符的输出将是一个int,所以为什么不编译?

c# compiler-construction modulus

0
推荐指数
1
解决办法
99
查看次数

找到满足模数的最小值

我遇到的问题是x =(16807 xk)%65536

即16807k≡x(mod 65536)

我需要计算k知道x.到目前为止,我的最大努力是一种蛮力.有没有数学方法来计算k?如果不是我的当前代码的任何优化将不胜感激.

t = x;
while ( t += 15115 ) // 16807k = 65536n + x - this is the n
{
    if (t%16807 == 0)
    return t/16807;
}
return x;
Run Code Online (Sandbox Code Playgroud)

编辑:更改+ =到15115

c math optimization hash modulus

0
推荐指数
1
解决办法
604
查看次数

如何在不使用模数(%)运算符的情况下获取数字的最后一位数?

如果我们被告知我们不能使用模数运算符,那么我们如何取出数字的最后一位数.

例如,
N=2345,我们应该得到5.

尝试提供通用解决方案.

我找到了什么:

N- N/ 10 * 10
Run Code Online (Sandbox Code Playgroud)

math modulus

0
推荐指数
1
解决办法
969
查看次数

vb.net 执行多个 OrElse 更好,还是执行一次检查 Mod = 0 更好

有两种简单的方法可以检查一个月是否是季度的第一天。

第一种方式:

If month = 3 OrElse month = 6 OrElse month = 9 OrElse month = 12 Then
    'do stuff
End If
Run Code Online (Sandbox Code Playgroud)

第二种方式:

If month Mod 3 = 0 Then
    'do stuff
End If
Run Code Online (Sandbox Code Playgroud)

对我来说,它们都具有同等的可读性。尽管它们在功能上有所不同,但只要已知月份在 1 到 12 之间(含 1 和 12),它们的逻辑就相同。应该使用哪种方式?

在最坏的情况下,如果month = 12,则执行四次比较。进行模数和一次比较是否更快(并不是说这是显着的性能差异)?

vb.net performance boolean-logic modulus

0
推荐指数
1
解决办法
290
查看次数

在Matlab中,“ rem”和“ mod”如何工作?

我知道,两个数相除时都会计算出余数。Mod可以使用不具有相同值的数字进行计算。

但是,如果我有这个例子:

b = mod(23,5)

b = 3
Run Code Online (Sandbox Code Playgroud)

答案是三个。要获得值3,后台进行的数学运算是什么?

matlab modulus

0
推荐指数
1
解决办法
1676
查看次数

java中的大数模数

我正在用 java 编写一个 RSA 解密原型。这只是为了展示它对学校的作用,这就是为什么我尽量保持简单。但是当我进入解密部分时,我必须使用公式:

c = m^e % n。

出于测试目的,我尝试使用m = "1010"(因为我从我的程序中将它作为字符串获取)、e = 55n = 361来做到这一点。这应该给我 345 作为 c(在 Windows 计算器中测试)。我得到的结果是:

Math.pow(Integer.parseInt("1010"), 55) % 361 // 115.0

BigDecimal b = BigDecimal.valueOf(Math.pow(Integer.parseInt("1010"),55));

(b.remainder(BigDecimal.valueOf(361))).doubleValue() // 300.0

Math.pow(Integer.parseInt("1010"), 55) % 361 //  340
Run Code Online (Sandbox Code Playgroud)

请告诉我我错在哪里或如何解决这个问题。提前致谢。

java integer algebra bigdecimal modulus

0
推荐指数
1
解决办法
754
查看次数

我这里的模数代码有什么问题?(C)

#include <stdio.h>

int main (void)
{
  int x = 10^2;
  long a = 4000465006540123; //(16 places)
  long b = 4000465006540123 % x;
  
  printf("%li\n", b);
}
Run Code Online (Sandbox Code Playgroud)

当我运行代码时(它正确编译),代码打印出“3”。难道它不应该打印出“23”,因为 x 是 100,而不是 10?

c modulus

0
推荐指数
1
解决办法
61
查看次数