Esta parece una pregunta que debería tener una respuesta fácil, pero no tengo una respuesta definitiva:
Simplemente dividir por llevaría tiempo donde es la complejidad de la multiplicación. Pero, ¿se puede realizar un poco más rápido?
algorithms
number-theory
Suresh
fuente
fuente
Respuestas:
Shoup (Sección 3.3.5, Teorema 3.3, p. 62) da un límite para calcular el residuo en el tiempo O ( n log q ) donde a = q ⋅ p + r y log a = n .r O ( n logq) a = q⋅ p + r Iniciar sesióna = n
Supongo que si y a son ambos números de aproximadamente n bits, entonces q (y por lo tanto log q ) debería ser bastante pequeño, dando Opags una norte q Iniciar sesiónq .O ( n )
Si es un número de n bits, y puna norte pags es relativamente pequeño, entonces el enfoque de multiplicación debería ser más rápido.
fuente