早教吧作业答案频道 -->数学-->
如何求(a^b)modp,其中p是大质数,指数b是最大不超过2500万位的大整数.好像没法用快速幂,有没有什么用的上的数论公式或简便算法,因为2500万位的数高精度也没办法计算
题目详情
如何求(a^b) mod p,其中p是大质数,指数b是最大不超过2500万位的大整数.
好像没法用快速幂,有没有什么用的上的数论公式或简便算法,因为2500万位的数高精度也没办法计算
好像没法用快速幂,有没有什么用的上的数论公式或简便算法,因为2500万位的数高精度也没办法计算
▼优质解答
答案和解析
p的位数范围是多少?
如果p的位数还在可容许的范围内(例如几千位?),那么还是可计算的.
因为有Fermat小定理:若(a,p) = 1,则a^(p-1) ≡ 1 (mod p).
所以可先求b除以p-1的余数,设b = (p-1)m+r,其中0 ≤ r < p-1.
则a^b ≡ a^r (mod p).
指数r < p-1,因此如果p的位数不算太大就是可以计算的.
另外乘方运算要在mod p的意义下进行,粗略估计复杂度大概是O(log(p)³)级别.
如果p的位数还在可容许的范围内(例如几千位?),那么还是可计算的.
因为有Fermat小定理:若(a,p) = 1,则a^(p-1) ≡ 1 (mod p).
所以可先求b除以p-1的余数,设b = (p-1)m+r,其中0 ≤ r < p-1.
则a^b ≡ a^r (mod p).
指数r < p-1,因此如果p的位数不算太大就是可以计算的.
另外乘方运算要在mod p的意义下进行,粗略估计复杂度大概是O(log(p)³)级别.
看了 如何求(a^b)modp,其...的网友还看了以下:
几道数学题…………(1)一个两位数,十位为x,个位为y,求次数.(列代数式)(2)小明坐计程车,发 2020-04-07 …
C++判断是否对称三位数素数Description:判断一个数是否为对称三位数素数.所谓“对称”是 2020-04-07 …
六位数□2004□能被99整除,这个六位数是多少?(1)要有分析过程(2)为什么这样做也可以:设首 2020-05-16 …
●循环冗余校验码(CRC)利用生成多项式进行编码。设数据位为k位,校验位为r位,则CRC码的格式为( 2020-05-26 …
●循环冗余校验码( CRC)利用生成多项式进行编码。设数据位为k位,校验位为r位,则CRC码的格式为 2020-05-26 …
●循环冗余校验码(CRC)利用生成多项式进行编码。设数据位为k位,校验位为r位,则CRC码的格式为( 2020-05-26 …
采用异步传输方式,设数据位为7位,1位校验位,1位停止位,则其通信效率为(46)。A.30%.B.7 2020-05-26 …
计数器的计数值不等于0时,计数器位为( );计数值为0时,计数器位为( )。A.0,0B.0,1C. 2020-06-07 …
一个分数的分数单位是,把这个分数的分子、分母都扩大5倍,这个分数大小不变,它的分数单位为[]A.B 2020-06-08 …
一个五位数,它的最高位是位,最高位是百位的数是位数. 2020-06-14 …