快速乘用途:计算a*b%mod,而且a*b大于long long。
基本原理:计算机中计算加法的速度往往比乘法快多了,而快速乘就是通过乘法分配律将a*b分解成多项式相加。
举个枣子:20*13,将13转化成二进制1101,则就是20*2^0+20*2^2+20*2^3。(类似于快速幂)
ll quick_mulitiply(ll a,ll b,ll mod) {
ll res=0;
while(b) {
if(b&1) res=(res+a)%mod;
a=(a+a)%mod;
b>>=1;
}
return res;
}