numbers - Octave - 如何处理大数

标签 numbers octave

我正在研究 Octave 的 RSA 算法,但它没有以正确的方式工作。当我尝试使用“^”功能时出现问题。检查下面的示例:

>> mod((80^65), 133)

终端给我:

ans = 0

我无法修复这个问题,这很有趣,因为即使我的系统计算器也返回正确的数字(54)

最佳答案

要以正确的方式计算此值,您可以使用快速幂模算法。 在 C++ 中,检查下面的函数 where -> a^b mod m:

int power_modulo_fast(int a, int b, int m)
{
int i;
int result = 1;
int x = a % m;

for (i=1; i<=b; i<<=1)
{
  x %= m;

    if ((b&i) != 0)
      {
    result *= x;
    result %= m;
      }

   x *= x;
}

  return result;
}

关于numbers - Octave - 如何处理大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31790669/

相关文章:

C - 10 到 30 之间的随机数

java - 用非常大的数组计算幂集,Java?‽

ruby - 如何在 Postgres 中存储小数列表

python - Scipy.linalg.eig() 给出与 GNU Octave 的 eig() 不同的特征向量

functional-programming - Octave 中的折叠功能

numbers - Sublime Text 建议数字 : how to disable it?

c# - C# 中的随机数生成器问题

matlab - 倍频程线性回归(一个变量)的梯度下降

java - 如何使用系统调用 Octave 中的 .jar?

matlab - 在octave/matlab中读取和解析文本文件