快速幂 同一个数多次幂的取余优化计算

简单说一下大致的思路 :

  对于a^b%mod 而言,利用二分的思想去优化 ,每次把a=a*a%mod  b/=2(如果是奇数的话 就把那个奇数单独的取出来 )(实际上就是把两个相同的数化成一个数 然后降次)。比如a^8%mod ,实际的运算只需要3次 。第一次:a=a*a%mod ;第二次,a=(a*a)*(a*a)%mod  ... 

  其实就是一个简单的二分分治~

int fastmi(int x,int y)
{
 int b=1;
 while(y>0)
 {
  if(y%2==1) b=(b*x)%9973;
  y/=2;
  x=(x*x)%9973;
 }
    return b;
}

 

posted @ 2016-05-14 18:21  猪突猛进!!!  阅读(1398)  评论(0编辑  收藏  举报