Inteiros e congruências
Divisão, mdc e Euclides, primos, aritmética modular e dígitos de controlo.
Nesta página
A teoria dos números estuda os inteiros com as operações de sempre, mas com perguntas novas: quem divide quem, que restos são possíveis, como resolver equações só com restos. É a base da criptografia moderna (o RSA vive de aritmética modular) e dos dígitos de verificação do NIF e do NIB. Para acompanhar esta página basta a aritmética do secundário; o resto constrói-se aqui.
O algoritmo da divisão e a divisibilidade
Teorema da divisão: dados com , existem inteiros únicos (quociente) e (resto) com e .
A condição é o que torna o par único. Exemplo: (resto 3) e (resto 1, não ). Com divisores negativos funciona igual: . Se programares, atenção: algumas linguagens devolvem resto negativo para dividendos negativos, o que viola esta convenção matemática.
Diz-se que divide , , quando existe com , isto é, quando o resto é zero. Exemplos: , , e para todo o . Não confundas (relação, verdadeira ou falsa) com (número).
Representação em bases
Um número escreve-se numa base como soma de potências: . Para converter por divisões sucessivas, divide-se por e lêem-se os restos de trás para a frente. Exemplo próprio: em binário.
; ; ; ; ; . Restos de trás para a frente: . Confirma: . Para hexadecimal, agrupa de quatro em quatro bits: , , logo . Confirma: .
Máximo divisor comum e Euclides
O máximo divisor comum é o maior inteiro que divide ambos. O algoritmo de Euclides calcula-o com divisões sucessivas: substitui o par pelo (divisor, resto) até o resto ser zero. O último divisor não nulo é o mdc.
Exemplo: .
- .
- .
- .
O mdc é . Confirma: e . E e não têm divisores comuns além de 1, por isso não há maior.
Por trás disto está a identidade de Bézout: existem inteiros com . Para o exemplo, desfazendo as divisões: . Confirma: , , diferença . Esta identidade é o que permite inverter números módulo , como vais ver.
Podes experimentar o algoritmo com outros valores:
def mdc(a, b):
while b:
a, b = b, a % b
return a
print(mdc(1071, 462)) # 21
print(mdc(100, 35)) # 5Dados de entrada
Primos e fatorização
Um inteiro é primo quando os seus únicos divisores positivos são e . Os primeiros são . O Teorema Fundamental da Aritmética diz que todo o inteiro maior que 1 se escreve como produto de primos de forma única (a menos da ordem): .
Duas consequências úteis: significa que e são primos entre si (não partilham fatores), e se um primo divide um produto , então divide ou divide (lema de Euclides). É este lema que faz a fatorização ser única.
Congruências: igualdade a menos do resto
Definição: fixa . Diz-se que é congruente com módulo , , quando , isto é, quando e têm o mesmo resto na divisão por .
Exemplos: porque é múltiplo de 7; porque é múltiplo de 3. A intuição da “aritmética do relógio”: módulo 12, horas são horas, e horas são horas.
A congruência módulo é uma relação de equivalência: reflexiva, simétrica e transitiva. As suas classes, as classes de congruência, são os conjuntos dos inteiros com cada resto possível. Módulo 5, a classe de é .
O essencial para calcular: podes somar, subtrair e multiplicar congruências como igualdades. Se e , então e . Para potências grandes, reduz a base primeiro: calcula-se como , porque .
Resolver congruências lineares
Resolver é a operação central. O procedimento:
- Calcula . Se , não há solução.
- Se , divide tudo por : , agora com e primos entre si.
- Inverte módulo com Euclides estendido (Bézout dá , logo é o inverso). A solução é .
- As soluções módulo original são valores espaçados de .
Exemplo 1: . . O inverso de 3 módulo 5 é 2, porque . Logo . Confirma: .
Exemplo 2: . , e , por isso há solução. Divide por 2: , que dá . As soluções módulo 10 são e (soma-se ). Confirma ambas: e .
Aplicação: dígitos de verificação
O NIF português tem 9 dígitos com pesos a , e é válido quando . Testa a sequência :
.
Como , o resto módulo 11 é 0: a sequência passa na verificação. (É só um exemplo aritmético, não um NIF real.) O NIB usa a mesma ideia com módulo 97 sobre 21 dígitos. Estes esquemas detetam erros de digitação porque trocar um dígito muda a soma ponderada de forma que o resto quase sempre deixa de ser o exigido.
Para levar para a próxima página
O algoritmo de Euclides e a aritmética modular são os teus primeiros algoritmos com prova de correção séria. A técnica para os provar, a indução, é o tema seguinte.