听说这个会加速乘法?其实不太理解,既然这个快那C++底层的乘法为什么不用这个。。
所以一般还是用于直接乘会爆long long,所以这个分解着做
ll qm(ll x, ll y, ll mod){
ll ret = 0;
while(y){
if(y & 1){
ret += x;
if(ret >= mod) ret -= mod;
}
x <<= 1;
if(x >= mod) { x -= mod; if(!x) return ret; }
y >>= 1;
}
return ret;
}
博客探讨了一种据说能加速乘法的方法,作者不太理解为何C++底层乘法不采用该方法。指出此方法一般用于直接相乘会超出long long范围的情况,需分解进行计算。
439

被折叠的 条评论
为什么被折叠?



