Views
5 years ago

Introducción a la teoría de números. Ejemplos y - TEC-Digital

Introducción a la teoría de números. Ejemplos y - TEC-Digital

170 NÚMEROS PRIMOS Y

170 NÚMEROS PRIMOS Y FACTORIZACIÓN. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Algoritmo 9.5: Miller-Rabin Datos: n ≥ 3 y un parámetro de seguridad t ≥ 1. Salida: “n es primo” o “n es compuesto”. Calcule r y s tal que n − 1 = 2sr, r impar; for i = 1,2,...,t do a =Random(2,n − 2); y = ar (mod n); if y �= 1 y y �= n − 1 then j = 1; while j ≤ s − 1 y y �= n − 1 do y = y2 (mod n); if y = 1 then return “Compuesto”; j = j + 1; if y �= n − 1 then return “Compuesto”; return “Primo”; compuesto. Esto es así pues si x 2 ≡ y 2 (mod n) pero si x ≡/ ± y (mod n), entonces MCD(x − y,n) es un factor no trivial de n. En la línea 12, si y �= n − 1, entonces a es un testigo fuerte de n. Si el algoritmo 9.5 declara compuesto a n entonces n es definitivamente compuesto, por el teorema 9.3. Si n es primo, es declarado primo. Si n es compuesto, la probabilidad de que el algoritmo lo declare primo es inferior a 1/4 t . El algoritmo 9.5 requiere, para n − 1 = 2 j r con r impar, t(2 + j)lnn pasos. t es el número de bases. Una estrategia que se usa a veces es fijar las bases. Se toman como base algunos de los primeros primos en vez de tomarlas de manera aleatoria. El resultado importante aquí es este: Si p1, p2,..., pt son los primeros t primos y si ψt es el más pequeño entero compuesto el cual es seudoprimo para todas las bases p1, p2,..., pt, entonces el algoritmo de Miller-Rabin, con las bases p1, p2,..., pt, siempre responde de manera correcta si n < ψt. Para 1 ≤ t ≤ 8 tenemos t ψt 1 2047 2 1373653 3 25326001 4 3215031751 5 2152302898747 6 3474749660383 7 341550071728321 8 341550071728321

EJERCICIOS 171 Implementación en Java. En la clase BigInteger de Java ya viene implementado el método this.modPow(BigInteger r, BigInteger N) para calcular y = a r (mod N). Para calcular r y s solo se divide N − 1 por dos hasta que el residuo sea diferente de cero. En esta implementación usamos los primeros ocho primos como bases. Así el algoritmo responde de manera totalmente correcta si 19 < N < 341550071728321. En todo caso, también podemos usar el método this.isProbablePrime(int c) que responde correctamente con una probabilidad que excede 1 − 1 . 2c import java.math.BigInteger; import java.util.*; public class Miller_Rabin { public Miller_Rabin(){} public boolean esPrimoMR(BigInteger N) { //n>3 e impar. Respuesta 100% segura si N

Edición de textos científicos con LaTeX - TEC Digital - Tecnológico ...
El Conjunto de los números Reales - TEC-Digital
1.5 Algoritmo de Euclides con menor resto. - TEC-Digital
Números Enteros - Universidad de Buenos Aires
Números Enteros - Universidad de Buenos Aires
Replanteamiento de la Conjetura de Goldbach - TEC-Digital
Cómo hacer Transparencias con la clase Beamer de - TEC-Digital ...
Cálculo Superior. Vectores, rectas y planos. - TEC Digital ...
La génesis y el desarrollo de un hecho científico - TEC-Digital
Versión PDF - TEC-Digital - Tecnológico de Costa Rica
Teoria Numeros C Ivorra Castillo
Programación Visual Basic (VBA) para Excel y Análisis ... - TEC-Digital
Una Introducción (otra mas) - Departamento de Matemática y ...
Tema 4. Teoría de los Números - it/aut/UAH