algorithm - 几何级数模运算

标签 algorithm numbers

我正在给一个系列的形式

1+r+r^2+r^3+r^4+r^5

我必须找到级数和的模数,即我必须找到这个值

[(r^n-1)/(r-1)]%M

(r^n-1)%M的值我可以很轻松的计算出来,但是问题是分母项怎么计算呢? 如果 (r-1) 和 M 不是互素数,则反模不存在。

请帮助如何获得这个值的任何近似值或算法?

由于求和很大,不能直接计算。

最佳答案

大概您打算用快速求幂循环计算 r^n

E(r, 0) = 1
E(r, n) = E(r*r, n/2)         if n is even
          r * E(r*r, (n-1)/2) if n is odd.

我们可以为 1 + r + r^2 + ... + r^n 构造一个类似的直接递推。

F(r, 0) = 1
F(r, n) = (1 + r) * F(r*r, (n-1)/2)       if n is odd
          1 + (r + r*r) * F(r*r, (n-2)/2) if n is even.

当然,所有的计算都应该以 M 为模进行。

关于algorithm - 几何级数模运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42032824/

相关文章:

algorithm - 出现n次的最长子串

javascript - 使用此方法将字符串转换为整数是否有任何副作用

javascript 如果值是数字到数字

python - 我如何允许用户输入 6 位数字而不是 4 位

python - 选择更大的球

algorithm - big-O 时间复杂度中的指数分母(分数指数)从何而来?

perl - 将 ASCII 码转换为数字

java - Java读写文件和添加行号

performance - 支持删除任意节点的Lock Free Deque

algorithm - 测量执行任何功能的预期时间