Complessità di prendere mod


23

Questa sembra una domanda che dovrebbe avere una risposta facile, ma non ne ho una definitiva:

na,pamodp

Dividere semplicemente per richiederebbe il tempo dove è la complessità della moltiplicazione. Ma può essere eseguito leggermente più velocemente?ap O(M(n))M(n)mod


1
Forse una domanda stupida, ma puoi convertire da scrivere in base e poi guardare l'LSB? ap
Pål GD,

2
Potresti, ma sembra un lavoro extra e probabilmente richiederebbe una divisione.
Suresh,

Risposte:


12

Shoup (Sezione 3.3.5, Teorema 3.3, pag. 62) dà un balzo per calcolare il residuo in tempo dove e .rO(nlogq)a=qp+rloga=n

Immagino che se e sono entrambi all'incirca numeri di bit, allora (e quindi ) dovrebbe essere piuttosto piccolo, dando .panqlogqO(n)

Se è un numero -bit e è relativamente piccolo, l'approccio di moltiplicazione dovrebbe essere più veloce.anp

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.