Teoria dos números - multiplicação rápida (modelo)

Propósito de multiplicação rápida: calcular a * b% mod, e a * b é maior do que long long.

Princípio básico: A velocidade de cálculo e adição em um computador costuma ser muito mais rápida do que a da multiplicação, e multiplicação rápida consiste em decompor a * b em polinômios e adicioná-los por meio da lei distributiva da multiplicação.

Pegue uma data: 20 * 13, converta 13 em binário 1101, então é 20 * 2 ^ 0 + 20 * 2 ^ 2 + 20 * 2 ^ 3. (Semelhante ao poder rápido)

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;
}

 

Acho que você gosta

Origin blog.csdn.net/qq_44132777/article/details/109664812
Recomendado
Clasificación