Aritmética Modular Teoria de Números Computacional LCC M. Lurdes Teixeira DMA-ECUM 2◦ semestre de 2011/2012 M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Conceitos Básicos e Resultados Elementares Definição Sejam a e b inteiros. Diz-se que a é congruente com b módulo m se m | a − b, isto é, se o resto da divisão de a por m é igual ao resto da divisão de b por m. Notação: Se a é congruente com b módulo m escreve-se a ≡ b(mod m). a mod m representa o resto da divisão de a por m. Exercı́cio Que dia da semana será daqui por 1000 dias? M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Conceitos Básicos e Resultados Elementares Proposição Se m e c são inteiros tais que m.d.c.(m, c) = 1, então ac ≡ bc (mod m) se e só se a ≡ b (mod m). Proposição Se a, b, c e m são inteiros, então ac ≡ bc (mod mc) se e só se M. Lurdes Teixeira DMA-ECUM a ≡ b (mod m). Teoria de Números Computacional LCC Aritmética Modular Conceitos Básicos e Resultados Elementares Definição Sistema completo de resı́duos módulo m é um conjunto S de inteiros tal que cada inteiro é congruente com exatamente um elemento de S. Exemplos S = {0, 1, . . . , m − 1} (sistema standard de restos). m S = {− m 2 + 1, . . . , −1, 0, 1, . . . , 2 } se m é par. m−1 S = {− m−1 2 , . . . , −1, 0, 1, . . . , 2 } se m é ı́mpar. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Conceitos Básicos e Resultados Elementares A relação ≡ (mod m) é uma relação de congruência no anel (Z, +, .). Então faz sentido falar do quociente Z/≡ (mod m) = Zm . (Zm , +m , ·m ) é um anel comutativo com identidade. Exercı́cio Verifique que 6 | a(a + 1)(2a + 1) com a ∈ Z. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Conceitos Básicos e Resultados Elementares Definição Sejam a, a0 e m inteiros. Diz-se que a0 é um inverso de a módulo m se a · a0 ≡ 1 (mod m) Proposição Um inteiro a é invertı́vel módulo m se e só se m.d.c.(a, m) = 1. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Conceitos Básicos e Resultados Elementares Exercı́cio Resolver as congruências lineares (i.e., equações lineares em Zm ): 4x ≡ 3 (mod 7), 4x ≡ 3 (mod 8) e 4x ≡ 2 (mod 6). Proposição Uma congruência linear ax ≡ b (mod m) tem solução se e só se m.d.c.(a, m) | b. Proposição Se m.d.c.(a, m) = d e d | b, então a congruência ax ≡ b (mod m) tem exatamente d soluções incongruentes módulo m no sistema de restos standard, as quais são da forma (x0 + m d i) mod m onde x0 é uma solução particular e i ∈ {0, 1, . . . , d − 1}. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Conceitos Básicos e Resultados Elementares Critérios de divisibilidade 10 ≡ 0 0 1 1 −1 (mod 2) (mod 5) (mod 3) (mod 9) (mod 11) pelo que para i ≥ 1, 10i ≡ M. Lurdes Teixeira DMA-ECUM 0 0 0 0 1 1 1 −1 (mod 2) (mod 4) (mod 8) (mod 5) (mod 3) (mod 9) (mod 11) (mod 11) se i ≥ 2 se i ≥ 3 se i é par se i é ı́mpar Teoria de Números Computacional LCC Aritmética Modular Conceitos Básicos e Resultados Elementares n é divisı́vel por m se e só se n ≡ 0 (mod m). Critérios de divisibilidade por 2,3,4,5,8,9,11 n = ak × 10k + · · · + a1 × 10 + a0 n≡ a0 2a1 + a0 4a2 + 2a1 + a0 a0 ak + · · · + a0 ak + · · · + a0 (−1)k ak + · · · + a2 − a1 + a0 M. Lurdes Teixeira DMA-ECUM (mod 2) (mod 4) (mod 8) (mod 5) (mod 3) (mod 9) (mod 11) Teoria de Números Computacional LCC Aritmética Modular Conceitos Básicos e Resultados Elementares Exercı́cios 1 Verifique se 22051946 é um quadrado perfeito. 2 Mostre que o último algarismo de um quadrado perfeito não pode pertencer a {2, 3, 7, 8}. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Teorema Chinês dos Restos n n mod 2 n mod 3 n mod 5 0 0 0 0 1 1 1 1 2 0 2 2 3 1 0 3 4 0 1 4 5 1 2 0 6 0 0 1 7 1 1 2 8 0 2 3 9 10 11 12 13 14 1 0 1 0 1 0 0 1 2 0 1 2 4 0 1 2 3 4 Analise os pares de restos (n mod 2, n mod 3) para 0 ≤ n ≤ 5. Analise os pares de restos (n mod 3, n mod 5) para 0 ≤ n ≤ 14. Analise os pares de restos (n mod 2, n mod 5) para 0 ≤ n ≤ 9. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Teorema Chinês dos Restos Primeiro enunciado do Teorema Chinês dos Restos Se m.d.c.(a, b) = 1 então os pares de restos do tipo (n mod a, n mod b), para n ∈ {0, . . . , ab − 1}, são todos distintos. Exemplo x ≡ 6 (mod 9) x ≡ 3 (mod 8) Há uma única solução comum às duas equações módulo 72 que é 51. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Teorema Chinês dos Restos n n mod 2 n mod 3 n mod 5 0 0 0 0 1 1 1 1 2 0 2 2 3 1 0 3 4 0 1 4 5 1 2 0 6 0 0 1 7 1 1 2 8 0 2 3 9 10 11 12 13 14 . . . 1 0 1 0 1 0 ... 0 1 2 0 1 2 ... 4 0 1 2 3 4 ... Analise os ternos de restos (n mod 2, n mod 3, n mod 5) para 0 ≤ n ≤ 29. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Teorema Chinês dos Restos Teorema Chinês dos Restos Sejam m1 , m2 , . . . , mn números primos entre si dois a dois. Então o sistema de congruências lineares x ≡ a1 (mod m1 ) x ≡ a2 (mod m2 ) .. . x ≡ an (mod mn ) tem uma única solução módulo M = m1 m2 · · · mn . A única solução é dada por: x0 ≡ a1 M1 x1 + · · · + an Mn xn (mod M) onde Mi = M mi e xi é o inverso de Mi módulo mi para 1 ≤ i ≤ n. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Teorema Chinês dos Restos Exemplo A única solução do sistema de congruências lineares x ≡ 7 (mod 23 ) x ≡ 16 (mod 5) x ≡ 32 (mod 72 ) módulo M = 23 · 5 · 72 = 1960 é x0 ≡ 7 · (5 · 72 ) · 5 + 1 · (23 · 72 ) · 3 + 32 · (23 · 5) · 38 (mod 1960) ≡ 1551(mod 1960) M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Teorema Chinês dos Restos 1 Utilizando apenas números menores do que 1000 calcule: 1 2 3 2 3442 + 768; 232134 + 4565; 3452 × 5643. Descreva como se poderia calcular o produto 453367895342443 × 325790964124567 utilizando números inferiores a 235 . M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Teorema Chinês dos Restos Extensão do Teorema Chinês dos Restos Sejam m1 , m2 , . . . , mn inteiros tais que m.d.c.(mi , mj ) | ai − aj para quaisquer i 6= j. Então o sistema de congruências lineares x ≡ a1 (mod m1 ) x ≡ a2 (mod m2 ) .. . x ≡ an (mod mn ) tem uma única solução módulo M = m1 m2 · · · mn . M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Um algoritmo para o cálculo de potências Como escrever 291 na base 2? 28 <291< 29 −→ 291 − 28 =35 25 <35 < 26 −→ 35 − 25 = 3 3 = 2 + 20 291 = 28 + 25 + 21 + 20 logo 291 = (100100011)2 . Sendo b um inteiro, então 8 5 1 0 b291 = b2 · b2 · b2 · b2 . O cálculo do fator de maior expoente é 8 b2 = (· · · ((b2 )2 ) · · · )2 . b291 pode-se calcular efetuando 11 produtos: 8 para calcular potências de ordem 2, e 3 para fazer o produto das potências. Este método pode ser generalizado e transformado num algoritmo. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Um algoritmo para o cálculo de potências Para efetuar os cálculos sequencialmente, podemos recorrer à representação em binário: 8 b2 7 b2 6 5 b2 )20 )2 b291 = b2 = (b2 = ((b2 = .. . (((b2 5 b2 b2 4 b2 )2 b1 b2 )2 3 b1 )2 b1 2 b1 )2 b1 1 0 0 =((((((((b1 )20 )20 )2 b1 )20 )20 )20 )2 b1 )2 b1 M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Um algoritmo para o cálculo de potências Nas diversas aplicações o objetivo é calcular potências elevadas de uma certa base b módulo n e não calcular o valor absoluto da potência. Assim em cada etapa do cálculo o valor obtido pode ser reduzido módulo n. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Um algoritmo para o cálculo de potências Algoritmo de cálculo de uma potência módulo n Entrada: b, m e n. 1 x = resto da divisão de b por n, d = sequência de dı́gitos que representa m na base 2, k = comprimento de d, i = 2. 2 Se i > k , então terminar. 3 Se di = 0, então x ← resto da divisão de x 2 por n. 4 Se di = 1, então x ← resto da divisão de x 2 b por n. 5 i ← i + 1. 6 Voltar a 2.. Saı́da: x = resto da divisão de bm por n. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Um algoritmo para o cálculo de potências Note-se que na expressão: b291 = ((((((((b1 )20 )20 )2 b1 )20 )20 )20 )2 b1 )2 b1 o número de quadrados é igual ao número de dı́gitos menos um e o número de ocorrências de b é igual ao número de ocorrências de 1 na sequência em binário. Dado um inteiro positivo m, cuja representação na base 2 tem k dı́gitos, tem-se que 2k−1 ≤ m < 2k , pelo que k − 1 = log2 2k−1 ≤ log2 m < log2 2k = k. Logo o número de produtos necessários para o cálculo de bm é menor ou igual a 2log2 m. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC Aritmética Modular Um algoritmo para o cálculo de potências As seguintes funções do Mathematica são úteis para a resolução de exercı́cios desta área: Mod, PowerMod, FindInstance, CoPrime, ChineseRemainder, Reduce e Solve. M. Lurdes Teixeira DMA-ECUM Teoria de Números Computacional LCC