我的问题是在JavaScript中快速计算(g^x) mod p,其中^是取幂,mod是模运算。所有输入都是非负整数,x大约有256位,p是2048位的质数,g最多可以有2048位。使用平方和乘法(通过平方求幂,)的明显想法对于2048位数字来说太慢了:它需要多达4096次乘法。
升级浏览器不是一个选项。使用另一种编程语言不是一种选择。将号码发送到web服务不是一种选择。更新:通过做一些额外的准备(即预计算几百次幂),正如下面outis的答案中提到的文章所建议的那样,可以使用最多354次模</em
def f(a, b, c):
return ((a ** b)-1) // c % b 这个脚本能在某种程度上更快吗?(我一直在寻找具有模幂运算的东西): pow(a, b, c) == a ** b % c 但上面的脚本似乎不能像那样改进。有没有人知道如何加速上面的脚本?提前谢谢。编辑: 我没有把确切的方程放进去,因为我想要一个一般的情况的解决方案,当a=4,c=3时,这会让问题变得更容易吗?编辑: 我得到的请求是,如果我想先做减法,还是