标签: modulo

Raku 的“mod”操作符有什么意义?

我之前错误地认为%运算符返回余数,而mod运算符返回模数(当操作数均为正数或均为负数时,余数和模数相同,但当一个操作数为正而另一个操作数为负时,余数和模数不同。比较 Raket\' s余数函数)。

\n

然而,这根本不正确 \xe2\x80\x93 两者%mod返回模数;都不返回余数。事实上,如果使用相同的参数调用,它mod看起来总是会返回完全相同的值。%据我所知,唯一的区别是%可以使用非整数参数调用,而如果使用ormod以外的任何参数调用则抛出异常。Int:Dint

\n

那么,有什么意义呢mod?使用它是否会带来一些性能提升(也许可以通过节省优化器的一些专业化工作?)或者我缺少一些其他差异?

\n

modulo integer-division rakudo raku

9
推荐指数
1
解决办法
250
查看次数

确定 N 是否为幂的多项式(以 n 为单位)时间算法

我是一名计算机科学专业的学生;我正在独立学习算法课程。

\n

在课程中,我看到了这样一个问题:

\n
\n

给定一个n位整数N,找到一个多项式(n)时间算法来决定N是否为幂(即,存在整数a和k> 1,使得a^k = N)。

\n
\n

我想到了第一个选项,它是 n 的指数:\n对于所有 k , 1<k<N ,尝试将 N 除以 k 直到得到结果 1。

\n

例如,如果 N = 27,我将从 k = 2 开始,因为 2 不能整除 27,我将转到下一个 k =3。\n我将除以 27 / 3 得到 9,然后再次除以直到我将得到 1。这不是一个好的解决方案,因为它是 n 的指数。

\n

我的第二个选择是使用模算术,如果 gcd(a, k+1 ) = 1 (欧拉定理),则使用k \xe2\x89\xa1 1 mod (k+1) 。我不知道a和k是否互质。

\n

我正在尝试编写一个算法,但我很难做到:

\n
function power(N)\nInput: Positive integer N\nOutput: yes/no\nPick positive integers a_1, a_2, . . . , a_k < N …
Run Code Online (Sandbox Code Playgroud)

algorithm modulo

9
推荐指数
1
解决办法
407
查看次数

8
推荐指数
3
解决办法
3738
查看次数

模数运算符(%)如何实际计算?

最近我对模运算符感到困惑%.

据了解,a % b == a-a/b*b当我们有一个整数a,并b在那里a > b,我们可以通过手,如果这样的计算ab足够小.

但是,当涉及到处理器计算它的方式时,处理器是否使用与前面提到的相同的方法a-a/b*b?也许只是将分裂翻译成减法或加法,或者是否可能涉及一些转变?

language-agnostic modulo

8
推荐指数
2
解决办法
1858
查看次数

Android:哪个运算符为模数(%不适用于负数)

如果我试试

int a=(-2)%6
Run Code Online (Sandbox Code Playgroud)

我得-2而不是4.

为什么它以负数表示这种方式?

java android modulo

8
推荐指数
2
解决办法
4万
查看次数

溢出:a*a mod n

我需要计算a*amod n但是a相当大,当我对它进行平方时会导致溢出.这样做((a % n)*(a % n)) % n行不通,因为(N-1)2可以溢出.这是用C++编写的,我使用的是int 64.

编辑:示例值= 821037907258和n = 800000000000,如果您将其平方,则会溢出.

我正在使用DevCPP,我已经尝试过让大整数库工作无效.

编辑2:不,这些数字没有模式.

c++ biginteger modulo

8
推荐指数
2
解决办法
1389
查看次数

用于限制纬度和经度值的模数

我有代表纬度和经度的双打.
我可以使用以下功能轻松地将经度限制在(-180.0,180.0).

double limitLon(double lon)
{
  return fmod(lon - 180.0, 360.0) + 180.0;
}
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为一端是独占的,另一端是包容性的.fmod包括0但不包括-360.0.

任何人都可以想到一个优雅的纬度方法吗?
所需间隔为[-90.0,90.0].封闭形式的解决方案是最好的,即没有循环.我认为fmod()可能不是首发,因为现在两端都是包容性的.

编辑:正如所指出的那样,无论如何都不能进入91度纬度.技术上91应该映射到89.0.哦,男孩,这会改变一切.

c math floating-point modulo intervals

8
推荐指数
3
解决办法
2777
查看次数

如何有效地使用Modulo?

我做了一个(对我来说)非常复杂的任务,我必须在给定n个段时计算最大可能的序列数.

我发现加泰罗尼亚数字表示这个序列,我让它工作n <= 32.我得到的结果应该计算为1.000.000.007.我遇到的问题是"q"和"p"对于一个很长的int而言变得很大而且我在分割"q"和"p"之前不能只修改1.000.000.007因为我会得到不同的结果.

我的问题是,是否有一种非常有效的方法来解决我的问题,还是我必须考虑以不同的方式存储值?我的限制如下: - 仅限stdio.h/iostream - 仅整数 - n <= 20.000.000 - n> = 2

#include <stdio.h>

long long cat(long long  l, long long  m, long long  n);

int main(){
    long long  n = 0;
    long long  val;
    scanf("%lld", &n);

    val = cat(1, 1, n / 2);

    printf("%lld", (val));

    return 0;
}

long long  cat(long long  q, long long  p, long long  n){
    if (n == 0) {
        return (q / p) % 1000000007;
    }
    else {
        q …
Run Code Online (Sandbox Code Playgroud)

c performance store division modulo

8
推荐指数
1
解决办法
193
查看次数

Python模数结果与wolfram alpha不同?

当我运行我的python 3程序时:

exp = 211
p = 199
q = 337

d = (exp ** (-1)) % ((p - 1)*(q - 1))
Run Code Online (Sandbox Code Playgroud)

结果为211 ^( - 1).

但是当我在wolfram alpha中运行计算时,我得到了我期待的结果.

我做了一些测试输出和变量exp,p并且q在程序中是我在wolfram alpha中使用的所有整数值.

我的目标是从(弱)加密的整数中导出私钥.如果我测试我的wolfram alpha结果,我可以正确解密加密的消息.

python cryptography rsa modulo wolframalpha

8
推荐指数
2
解决办法
492
查看次数

关于CRC基础知识的一些问题

我是一名电子工程师,并没有发现从纯粹的数学角度考虑CRC非常重要.但是,我有以下问题:

  1. 当我们计算CRC时,为什么要在消息中添加n个零,n是生成多项式的次数?我已经在modulo-2 long division以及CRC的硬件实现中看到了这一点

  2. 为什么我们希望生成多项式可以被(x + 1)整除?

  3. 为什么我们希望生成多项式不能被x整除?

checksum crc modulo polynomials

8
推荐指数
1
解决办法
580
查看次数