我的问题是在JavaScript中快速计算(g^x) mod p,其中^是取幂,mod是模运算。所有输入都是非负整数,x大约有256位,p是2048位的质数,g最多可以有2048位。在我的慢速浏览器(带SpiderMonkey的Firefox3.0)上,用这个库做一个这样大小的求幂大约需要9秒。我正在寻找一个至少快10倍的解决方案。使用平方和乘法(通过平方求幂,)的明显想法对于2048位数字来说太慢了:它需要多达4096次乘法。
升级
事实证明,以下内容在fortran 77中是非法的: program main parameter(a=(10.)**(.5))...原因是,parameter语句采用常量算术表达式,除非指数是整数,否则求幂是非法的。(第6.1.3和8.6节 )。有没有人知道这个限制在新版本的标准中有没有放松?为什么一开始这就是非法的?