首页 > 其他 > 详细

快速幂

时间:2016-01-25 13:13:35      阅读:246      评论:0      收藏:0      [点我收藏+]

我们可以将xn分解成((x2)2)2……

其中要做k次平方运算,于是我们可以将n用k来表示

n=2k1+2k2+2k3……

xn=x2k1x2k2x2k3

所以我们只要在依次求x2i的同时进行计算就好了

时间复杂度为O(logn)

技术分享
1 while(k>0)  
2 {
3     if(k&1)ys=ys*a%n;   
4     a=a*a%n;                             
5     k/=2;  
6 }
View Code

 

快速幂

原文:http://www.cnblogs.com/wls001/p/5157107.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!