Teoría de Números Números Enteros: Propiedades - - Divisibilidad, números primos, descomposición en factores primos MCD y MCM Aritmética modular Algoritmos Criptografía Divisibilidad Sean a y b dos enteros, tales que a ≠ 0 Se dice que a Divide a b si existe un entero c tal que b = a⋅c denotado como a|b a es un divisor o factor de b b es un múltiplo de a Ejercicio Sean n y d enteros positivos. ¿Cuántos enteros positivos menores que n son divisibles por d? Divisibilidad:Propiedades Sean a, b y c enteros Si a|b y a|c, entonces a|(b+c) Si a|b, entonces a|bc, para todo entero c Si a|b y b|c, entonces a|c Números Primos Un número entero positivo p mayor que 1 es primo si los únicos factores positivos de p son 1 y p Un número entero positivo mayor que 1 que no es primo se denomina compuesto. Teorema fundamental de la aritmética Todo entero positivo mayor que 1 se puede escribir, de forma única, como un primo, o como el producto de dos o más primos, en el que los factores primos se escriben de forma creciente Ejemplo 100 = 2*2*5*5 = 22*52 641 = 641 999 = 3*3*3*37 = 33*37 Teoría de números Teorema Si n es un entero compuesto, entonces n tiene un divisor primo menor o igual a √n Ejercicios -1. Mostrar que 101 es primo -2. Encontrar los factores primos de 7007 Algoritmo de la División Teorema Sea a un número entero y b un entero positivo. Entonces existen dos enteros q y r únicos, tal que 0 ≤ r < b, donde: a = b.q + r a : dividendo b: divisor q: cociente r: residuo Ejemplo 101 = 11*9 + 2 Maximo común Divisor Sean a y b enteros a,b≠0 El entero más grande d, tal que d|a y d|b se denomina máximo común divisor de a y b y se denota por mcd(a,b) Algoritmo de Euclides Alternativa para calcular el MCD de dos números enteros Entrada: a y b números enteros Salida: x número entero que es el MCD de ayb Algoritmo de Euclides MCD (a, b) x ← a; y ← b; while y <> 0 r ← x mod y x←y y←r return x Algoritmo de Euclides Aplique el algoritmo de Euclides para calcular MCD(9,15) Maximo común Divisor ¿Cuál es el MCD entre 24 y 36? ¿Cuál es el MCD entre 17 y 22? ¿Cuál es el MCD entre 200 y 500? MCD Usando los factores primos de a y b a = p1a1p2a2…. pnan b = p1b1p2b2…. pnbn mcd(a,b) = p1min(a1, b1)p2min(a2, b2)…. pnmin(an, bn) MCD: Ejemplo mcd(120,500) 120 = 23*3*5 500 = 22*53 mcd(120,500) = 2min(3, 2)*3min(1, 0)*5min(1, 3) mcd(120,500) = 22*30*51 = 20 Primos Relativos Dos números a y b son primos relativos si mcd(a,b) = 1 17 y 22 son primos relativos . Primos Relativos Los números a1, a2,…,an son primos relativos dos a dos si mcd(ai, aj)=1 para 1 ≤ i ≤ j ≤ n 11, 17 y 21 son primos relativos de dos en dos, pero 10, 17 y 22 no lo son Mínimo Común Múltiplo El mínimo común múltiplo de a y b, denotado mcm(a,b) es el entero positivo más pequeño que es divisible por a y por b Mínimo Común Múltiplo Sean a y b a = p1a1p2a2…. pnan b = p1b1p2b2…. pnbn mcm(a,b) = p1max(a1, b1)p2max(a2, b2)….pnmax(an, bn) Calcule MCM ( 233572 , 2433) Teoría de números Sean a y b enteros positivos. Entonces a*b = mcd(a,b)*mcm(a,b) Aritmética Modular Sean a y m enteros positivos. a mod m denota el residuo de la división de a por m 17 mod 5 = 2 2001 mod 101 = 82 Aritmética Modular: Ejercicios Si contamos 100 días a partir de hoy ¿Qué día de la semana caerá? Se requiere minimizar el número de billetes de 1000, 2000, 5000 y 10000 para un valor en pesos que sea múltiplo de 1000. Congruencia Si a y b son enteros y m es un entero positivo, entonces a es congruente a b módulo m si m divide a – b y se denota por a ≡ b(mod m) a≡b (mod m) si m|a-b Congruencia: ejemplo Determinar si 17 es congruente a 5 módulo 6 Determinar si 24 y 14 son congruentes módulo 6 Congruencia Sea m un entero positivo. Si a ≡ b (mod m) y c ≡ d (mod m) entonces: a+c≡b+d (mod m) ac≡bd (mod m) Teoría de números Aplicaciones de la Aritmética Modular Uso de funciones Hash para asignación de memoria. Generación de números pseudo-aleatorios, método de congruencia lineal. Criptografía para hacer cifrado de mensajes. Aplicaciones Aritmética Modular Función Hash: asigna una posición de memoria a cada llave. Función Hash común h(k) = k mod m, donde m es el número de locaciones de memoria disponible Funciones Hash Considere que se tienen 111 posiciones de memoria. Cuál sería la locación de memoria para la llave 46216483 ? 46216483 mod 111 = 79 Números Pseudo-Aleatorios En sistemas de simulación es necesario elegir números al azar Método de congruencia lineal: método común para generar números pseudoaleatorios Números Pseudo-Aleatorios Se eligen cuatro números: Módulo m , Multiplicador a, Incremento c y Semilla x0 Con 2 ≤ a < m, 0 ≤ a < m, 0 ≤ a < x0, los números pseudo-aleatorios se generan aplicando sucesivamente la congruencia: Xn+1 = (a*xn + c) mod m Números Pseudo-Aleatorios Calcular la secuencia de números pseudo aleatorios que se generan para m = 9, a=7, c=4 y X0 = 3 Criptografía Caesar’s encryption Método para transformar cada letra del alfabeto en una que no permita leer el mensaje original 1. Transforme cada letra en un número. Para ello, utilice su posición en el alfabeto. A es 0, B es 1 2. Aplique la función f(p)=(p+3) mod 25, a cada número 3. Transforme cada número a letra y envíe el mensaje Criptografía: Ejercicios Encripte los siguientes mensajes: “HOLA” “NOS VEMOS EN EL CDU”. Desencripte el mensaje “QDGLHSLHUGHGLVFUHWDV” A B C D E F G H I J K L M 0 1 2 3 4 5 6 7 8 9 10 11 12 N O P Q R S T U V W X Y Z 13 14 15 16 17 18 19 20 21 22 23 24 25