Algunos trucos útiles para la exponenciación modular
La intención de este post es recopilar varios trucos que a veces pueden simplificar los cálculos de este tipo. (Especialmente cuando se hacen a mano y no con ordenador o calculadora.) Este post es comunidad-wiki, así que siéntete libre de editarlo si tienes alguna idea para mejorarlo.
Usar complemento: (c−a)≡(−a)(modc)
Si el número dado se aproxima a c (pero menor que c ), sustituyéndolo por c−a mi ayuda - trabajaremos con números más pequeños. Algunos ejemplos:
Si puedes encontrar una potencia cercana al módulo, intenta utilizarla.
Algunos ejemplos:
- Queremos calcular 61000mod23 . Desde 6=2⋅3 veamos si podemos combinar de alguna manera estos dos números para obtener algo con un resto pequeño módulo 23 . Podemos observar que 24=23⋅3≡1(mod23) . También podemos observar que 27≡4(mod23) es decir 33≡22(mod23) . Sustitución de 22 con 33 en la congruencia anterior obtenemos 2⋅34≡1(mod23) . Ahora podemos combinar las dos congruencias anteriores para obtener 1≡(23⋅3)3⋅(2⋅34)2=211⋅311=611(mod23) . Obsérvese que la congruencia 611≡1(mod23) también puede obtenerse por distintos medios: Encuentre 61000mod23 .
- Queremos encontrar 5119mod59 . Esto puede resolverse de forma muy sencilla utilizando el pequeño teorema de Fermat: Hallar el resto utilizando el pequeño teorema de Fermat cuando 5119 se divide por 59 ? Sin embargo, olvidemos el pequeño teorema de Fermat y tratemos de encontrar algunas potencias de 5 que dan un resto pequeño módulo 59 . Podemos observar que 53 no está muy lejos de 2⋅59 y obtener 53≡125≡7(mod59) . Del mismo modo, 7⋅25 parece no estar muy lejos de 3⋅59 así que podemos intentar 55=53⋅52≡7⋅25≡175≡−2(mod59) . Y ahora podemos utilizar 64 es una potencia de dos que se aproxima a nuestro resto para obtener 530=(55)6≡(−2)6≡64≡5(mod59) . Puesto que tenemos 530≡5(mod59) y gcd(5,59)=1 podemos cancelar 5 en ambos lados para obtener 529≡1(mod59) . Y este último dato puede utilizarse en cálculos posteriores.
- La tarea consiste en encontrar 1674mod65 . Se puede observar que 64 es una potencia de dos muy próxima a 65 . Así que tenemos 26=64≡−1(mod65) lo que significa que 1674=(24)74=2296=26⋅49⋅22≡(−1)49⋅4≡−1⋅4≡−4(mod65) . Ver también Informática 1674mod65 .
Utilizando el criterio de Euler
Criterio de Euler puede decirnos sobre el valor de ap−12 módulo de un primo p . Sin embargo, necesitamos saber si a es un residuo cuadrático módulo p . Para algunos números esto se puede adivinar. A veces se puede comprobar utilizando reciprocidad cuadrática (Por supuesto, esto no es una gran mejora en comparación con el pequeño teorema de Fermat, que nos da ap−1≡1(modp) .)
- Veamos 529mod59 (ya lo hemos calculado anteriormente mediante diferentes cálculos). Es fácil darse cuenta de que 82=64≡5(mod59) Así que 5 es un residuo cuadrático módulo 59 . Así que a partir del criterio de Euler obtenemos 529=5(59−1)/2≡1(mod29) .
3 votos
Pequeño teorema de fermat
3 votos
Puede resultar laborioso cuando cc es enorme, pero bb ser enorme no debería ser un problema.