【问题标题】:How to efficiently calculate a^k mod m如何有效地计算 a^k mod m
【发布时间】:2020-11-08 06:58:31
【问题描述】:

如何有效地计算 ak mod m 其中 a,k,m 是非常大的数字,k 可能高达 109 或更多,a 可能是最多 106

这里 a 是素数,但 k 和 m 可能不是素数。

我唯一的选择是根据二进制表示计算 a1 mod m、a2 mod m、a4 mod m 等k 或者有什么简单的方法可以将 k 减少到一个更小的数字?

【问题讨论】:

标签: number-theory


【解决方案1】:

这个问题类似于线性同余随机数生成器的“向前跳过”。在

中有这个公式

Brown, Forrest, B.:任意步幅的随机数生成。阿贡国家实验室,1994 年。 https://laws.lanl.gov/vhosts/mcnp.lanl.gov/pdf_files/anl-rn-arb-stride.pdf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多