读书人

模取幂演算二分

发布时间: 2013-06-25 23:45:41 作者: rapoo

模取幂运算,二分
所以如果b的化成二进制的某位为0时,可以直接用这样算 resualt = (resualt * resualt)%c;
若为1 则为 resualt = ( resualt * a) % c;

这句话怎么理解? 模取幂 数论 算法导论
[解决办法]
哈哈哈,这回可以理解了吧?就是如果是0只计算第一个公式,如果是1则第二个公式也要,嘿嘿。
[解决办法]

if (b&(1<<i))resualt = ( resualt * a) % c;elseresualt = (resualt * resualt)%c; 

i为你想要的位数。

读书人网 >C++

热点推荐