Aritmética Modular

Propaganda
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
Download