• Nenhum resultado encontrado

Números Inteiros (III) – Teorema da Divisão de Euclides e Aplicações

N/A
N/A
Protected

Academic year: 2019

Share "Números Inteiros (III) – Teorema da Divisão de Euclides e Aplicações"

Copied!
12
0
0

Texto

(1)

Números Inteiros (III) – Teorema da Divisão de

Euclides e Aplicações

Diferentemente dos números reais (R), o conjunto dos inteiros (Z) não é fechado para a divisão. Esse não-fechamento faz com que a divisão entre inteiros seja um tanto “esqui-sita”. (Na verdade, essa esquisitice é útil em uma grande variedade de interessantes a-plicações práticas).

A divisão de inteiros será vista nesta aula na forma de um teorema. Depois, veremos desdobramentos teóricos e práticas (na Computação) desse teorema.

1. Teorema da Divisão de Euclides

Este teorema, também conhecido como Algoritmo da Divisão (apesar de não ser um algoritmo), informalmente, diz que:

• ao dividir um inteiro n (dividendo) por um inteiro positivo d (divisor),

• obtemos dois resultados: o quociente q e o resto positivo r

O que ele faz é explicar a relação algébrica entre essas quatro variáveis (n, d, q e r), como veremos a seguir1.

Teorema da Divisão de Euclides:

• Se n é um número inteiro e d é um número inteiro positivo

• Então, existem dois números inteiros únicos q e r tais que (i) n = d . q + r

(ii) onde: 0 r < d

(2)

Demonstração direta: A demonstração deste teorema se baseia na aplicação do axioma chamado de princípio da boa ordem. Provamos as partes (i) e (ii) em sequência.

Sejam n e d dois inteiros quaisquer, onde d > 0.

Agora, considere o conjunto abaixo construído a partir de n e d:

C = { n – k.d | onde k é um inteiro qualquer e onde n–k.d ≥ 0 }

= { ..., n – 3d, n – 2d, n – d, n, n+d, n+2d, n+3d, ... }

Primeiramente, podemos afirmar que C é não-vazio, para quaisquer n e d.

(Pois, adotando k=0 ou k=n , teremos, para um deles, que n – kd ≥ 0).

Assim, o princípio garante que C tem um elemento mínimo. Vamos chamar este

mínimo de r. (Veremos que este mínimo corresponde exatamente ao resto que

queremos). Além disso, pela definição de C, temos r = n – qd, para algum valor

inteiro q. Este inteiro q é o único que pode gerar r, por conta da equação linear

envolvida. (Este q corresponde ao quociente que queremos). Arrumando esta

equação provamos uma parte do teorema:

(i) n = qd + r , para certos q e r inteiros

Agora, vamos provar a segunda parte.

Já sabemos que r 0 (porque isso é verdade para todo elemento de C). Agora, vamos argumentar que r < d, por redução ao absurdo:

Assumindo que r ≥ d. Vamos provar que, neste caso, existe um elemento

de C menor do que r, o que seria uma contradição. (Observe que vamos

definir um certo r’ de modo compatível com a regra que define os

ele-mentos de C, mas usando k’ = q + 1).

Seja r’ definido assim: r’ = n – (q+1)d. Desenvolvendo, obtemos r’ = n

– qd – d. Usando a definição de r, provamos que r’ = r – d.

Rearruman-do a hipótese r ≥ d , obtemos r – d ≥ 0. Usando a equação anterior,

ob-temos r’ ≥ 0. Logo r’ pertence a C.

Além disso, como d é positivo, r – d é menor que r. Logo r’ < r. Isso

con-tradiz a escolha de r como mínimo de C.

Com isso, provamos a segunda (e última) parte do teorema:

(ii) 0 r < d (Provado).

(3)

retorna dois resultados. Para se referir somente a um dos resultados da divisão por vez, vamos definir essas duas operações:

n div d – retorna o quociente inteiro (o q do teorema acima)

n mod d – retorna o resto inteiro positivo (o r to teorema acima)

Com base nessas operações, podemos redefinir a equação do teorema como:

n = d . (n div d) + (n mod d)

Exemplos (todos com d=3):

• A divisão de n = 7 por d = 3 dá q = 2 e r = 1

o pois 7 = 3.2 + 1 e 0 ≤ r < 3

• A divisão de n = 27 por d = 3 dá q = 9 e r = 0

o pois 27 = 3.9 + 0 e 0 ≤ r < 3 • A divisão de n = 1 por d = 3 dá q = 0 e r = 1

o pois 1 = 3.0 + 1 e 0 ≤ r < 3

• A divisão de n = −7 por d = 3 dá q = −3 e r = 2

o pois −7 = 3.(−3) + 2 e 0 ≤ r < 3

Veja que o teorema da divisão exige que o resto seja sempre não-negativo. Por isso, quando o dividendo é negativo (como no último exemplo), o quociente não é aquele que estamos acostumados a usar na divisão de inteiros – ele é uma unidade a menos. Por exemplo, na divisão que tipicamente fazemos, –7 dividido por 3 daria quociente –2 com resto –1. Porém, no quarto exemplo, o quociente (q) ficou com uma unidade a menos (e o resto você pode calcular a partir de n, d e q). Estejam atentos a este detalhe!

(4)

2. Algoritmo de Euclides

O algoritmo de Euclides para calcular o mdc de dois números recebe seu nome de um importante matemático da Grécia antiga. Antes de apresentarmos o algoritmo propria-mente dito, vamos mostrar e provar o teorema que está por trás deste algoritmo:

Teorema: Se a e b são naturais e b0, então mdc(a,b) = mdc(b, a mod b).

Demonstração: Segue um esboço da idéia:

• Para simplificar a notação, seja r = a mod b. Como r corresponde ao resto da di-visão de a por b, pelo teorema da didi-visão podemos escrever:

a = b.q + r (para algum q inteiro). Logo, temos a equação I abaixo:

r = a – q.b

• Agora, a idéia central da demonstração consiste em provar que:

o Todo divisor comum de a e b é divisor de b e de r. Ou seja, você prova que “se x|a e x|b , então x|b e x|r”.

o E que todo divisor comum de b e r é também divisor de a e de b. Ou seja, você prova que “se x|b e x|r , então x|a e x|b”.

• Provando essas duas partes (tente fazer sozinho!), você garante que o par (a,b) tem os mesmos divisores comuns que o par (b,r). Logo, o máximo dos divisores comuns de (a,b) é o mesmo máximo dos divisores comuns de (b,r)! Assim, esta-rá provado o teorema.

O teorema acima nos permite “reduzir” o cálculo do mdc(a, b) ao cálculo do mdc entre dois valores (em geral) menores: mdc(b, a mod b). Podemos repetir essa “redução” su-cessivamente até não ser mais possível. Esta é a idéia simples por trás do algoritmo de Euclides. Exemplificamos a seguir.

Exemplo: Calcular mdc(414, 662):

• Esse mdc pode ser calculado assim:

(5)

• Que equivale a calcular sucessivamente:

= mdc(662, 414) = mdc(414, 662 mod 414)

= mdc(414, 248)= mdc(248, 414 mod 248)

= mdc(248, 166) = mdc(166, 248 mod 166)

= mdc(166, 82)= mdc(82, 166 mod 82)

= mdc(82, 2) = mdc(2, 82 mod 2)

= mdc(2, 0)

Uma vez que 2|0, concluímos que: = 2

O último passo é resultante do fato de que todo inteiro é divisor de 0 (pela definição da relação “divide” dada). Assim, de modo geral, temos: para todo a inteiro positi-vo, que mdc(a,0) = a.

Essa é a informação que faltava para explicar um algoritmo para calcular o mdc – o algoritmo de Euclides. A seguir, damos uma implementação recursiva dele em Py-thon. (Fica como exercício fazer uma implementação iterativa).

O algoritmo de Euclides é mais eficiente (mais rápido) computacionalmente e mais fácil de implementar do que a idéia que vimos na aula passada, baseada na fatoração de a e b em fatores primos.

Agora que já sabemos calcular o mdc eficientemente, como poderíamos calcular o mmc eficientemente? Para isso, veja o último teorema da aula passada!

def mdc(a, b):

if (b == 0):

return a

else:

(6)

3. Aritmética Modular

Observe que, pelo teorema da divisão anterior, o resto da divisão de um número qual-quer por um valor m só pode dar m valores distintos: de 0 a m-1. Assim, obviamente, dois números inteiros diferentes, quando divididos por um mesmo m, podem dar um mesmo resto. A aritmética modular surge da idéia de relacionar os números que dão o mesmo resto ao serem divididos por um dado valor m.

Esta relação é chamada de relação de congruência módulo m e sua definição é dada abaixo (porém sem mencionar resto da divisão):

Usamos a notação a ≡ b (mod m) sse tivermos que2: m > 0 e m | (a – b).

• Dizemos que “a é congruente a b, módulo m”, neste caso

Não provaremos, mas a definição dada acima equivale à seguinte definição, que mostra claramente a ligação com o resto da divisão:

a b (mod m) sse a mod m = b mod m

Apesar dessa propriedade ser mais didática, a definição original é, geralmente, a que deixa as demonstrações dos teoremas mais simples, então vamos preferi-la.

Exemplos:

3 0 (mod 3), pois 3 | (3-0) (ou porque 3 mod 3 = 0 mod 3 = 0)

2 5 (mod 3), pois 3 | (2-5) (ou porque 2 mod 3 = 5 mod 3 = 2)

29 8 (mod 3), pois 3 | (29-8) ...

11 1 (mod 2)

8 0 (mod 2)

A seguir, damos alguns resultados (teoremas) bastante simples: a 0 (mod 2) é verdade sse a é par (a é múltiplo de 2)

a 1 (mod 2) é verdade sse a é ímpar

(7)

a 0 (mod 3) é verdade sse a é múltiplo de 3

a 0 (mod 4) é verdade sse a é múltiplo de 4

3.1 Propriedades

As relações de congruência têm várias propriedades análogas às propriedades da relação de igualdade (entre números inteiros). Seguem algumas dessas propriedades, válidas para todos a, b e c inteiros e para todo m inteiro positivo:

o a a (mod m) [Reflexiva]

o Se a b (mod m), então b a (mod m) [Simétrica]

o Se a b (mod m) e b c (mod m), então a c (mod m) [Transitiva]

o Se a b (mod m), então a+c b+c (mod m)

o Se a b (mod m), então ac bc (mod m)

Todas estas propriedades podem ser provadas a partir da definição da relação. Como exemplo, vamos provar a penúltima propriedade dada.

Exemplo: Provar o seguinte teorema (para todos a, b e c Z e m∈ Z+): “Se a ≡ b (mod m) , então a+c b+c (mod m)”

Prova direta.

Sejam a, b e c inteiros quaisquer. Vamos, ainda, assumir que a b (mod m). Usando a definição da relação de “congruência módulo m”, temos que:

m | (a-b)

Agora, pela definição da relação “divide”, isso nos leva a:

k . m = a - b (para algum k inteiro)

Desenvolvendo a equação, temos: a = b + k . m

Calculando a+c com a equação acima, temos:

a + c = b + k.m + c

(a+c) = (b+c) + k.m

(a+c) – (b+c) = k.m

Pela definição da relação “divide” temos que:

(8)

3.2 Outras Propriedades

Diferentemente da igualdade, o cancelamento de um inteiro c nem sempre é possível nas relações de congruência. Ou seja, a afirmação a seguir é falsa:

Se ac bc (mod m), então a b (mod m)

Um contra-exemplo para a afirmação acima é a=4, b=3, c=2 e m=2. Pois temos que 4.2

3.2 (mod 2), porém não é verdade que 4 3 (mod 2).

A regra de cancelamento correta para a relação de congruência é dada abaixo. Na lista de exercícios, há uma questão que pede para você prová-la.

Se ac bc (mod m) e mdc(c,m)=1, então a b (mod m)

Há outras propriedades que se aplicam às relações de congruência, mas que não têm análogas na igualdade. Seguem algumas:

a a mod m (mod m)

a.c (a mod m).(c mod m) (mod m)

a+c (a mod m)+(c mod m) (mod m)

Juntas, as propriedades apresentadas nos garantem que podemos fazer “substituições” usando relações de congruência (tal como fazemos na igualdade), desde que seja em expressões envolvendo apenas adição e multiplicação. Veja o próximo exemplo.

Exemplo: Provar que “Se a x+y (mod 2), então a2 x2+y2 (mod 2)”. Prova direta.

Hipótese: a x+y (mod 2)

Objetivo: a2 x2+y2 (mod 2)

Vamos começar desenvolvendo uma relação de congruência módulo 2 para a2

(vamos omitir o “mod 2”, para deixar mais limpo):

a2 a.a

Usando a hipótese, podemos substituir o valor de a por (x+y).

(x+y).(x+y) x2 + 2xy + y2

(9)

x2 + 0.xy + y2 x2 + y2 (Provado).

Um uso interessante da aritmética modular consiste em transformar uma equação a = b em uma relação de congruência a ≡ b (mod m) para um m de sua escolha. Isso pode aju-dar a simplificar algumas demonstrações matemáticas, como no exemplo a seguir.

Exemplo: Prove que “se a soma de n números inteiros dá par, então existe uma quan-tidade par de números ímpares nesta soma”.

• Esboço gera (se der, veremos em sala...), assumindo que há x números inteiros e y números ímpares.

• Escrever essa soma, agrupando os x pares e os y ímpares, e igualando tudo a 2k, para algum k inteiro. Tirar o módulo de tudo, o que zera todo o grupo dos pares, e torna 1 cada número ímpar (cuja soma dá y). Isso tudo é congruente a 2k que é congruente a 0. Assim, ficamos com y congruente a 0.

A aritmética modular tem ligação com alguns algoritmos importantes da Computação, em especial o algoritmo RSA, que é um dos mais importantes algoritmos para manter a segurança de dados trafegando na internet. Veja um pouco mais sobre essas aplicações no material extra. Veja mais de teoria e aplicações no livro do Rosen.

4. Representação de Inteiros em Diferentes Bases (Extra)

Como você deve saber, no dia-a-dia, usamos uma representação dos números chamada de representação decimal, pois usamos dez símbolos (0,1,2,...,9) para representar qualquer número inteiro. Nesta notação, a posição do dígito interfere na grandeza que ele representa. Por exemplo, em um número como 74.942, cada dígito representa o se-guinte:

o o dígito 7 representa 70.000 (ou 7x104) o o primeiro 4 representa 4.000 (ou 4x103)

(10)

o o 2 representa, de fato, 2 unidades (ou 2x100)

Em outras palavras, 74.942 pode ser expresso como a seguinte soma de potências de 10: 7.104 + 4.103 + 9.102 + 4.101 + 2.100

Por outro lado, os computadores usam, internamente, uma representação binária dos números, apenas com os símbolos 0 e 1. (Um detalhe é que a linguagem de programa-ção faz automaticamente a conversão para a base decimal antes de exibir). Analogamen-te ao que aconAnalogamen-tece na base decimal, o valor representado por cada dígito binário depen-de da sua posição na representação do número. Assim um número binário como 1001011 representa a seguinte soma de potências de 2:

1.26 + 0.25 + 0.24 + 1.23 + 0.22 + 1.21 + 1.20 (em decimal, este seria o número 75)

Generalizando os princípios usados nas duas representações citadas, será que com uma base inteira positiva b qualquer podemos representar todos os números nela? O teorema a seguir esclarece esta questão.

Teorema: Considere b (a base) como um número inteiro maior que 1. Então, se n for um inteiro positivo, ele pode ser expresso como uma única soma da forma:

n = Dk.bk + Dk-1.bk-1 + Dk-2.bk-2 + ... + D1.b1 + D0

onde:

• para cada (dígito) Di (onde i é um índice de 0 a k), temos: 0 Di < b • e (para o dígito mais à esquerda) temos: Dk 0

Em outra palavra, o teorema diz que todo número inteiro positivo n pode ser represen-tado em uma base b qualquer maior que 1. No caso, a representação na base b do nú-mero é simplesmente a seqüência dos valores Di (ou de certos símbolos que representem esses valores). No caso geral, para bases diferentes de 10, podemos usar a seguinte no-tação deixando explícita a base b adotada:

(11)

Exemplos:

(4253)7 = 4.73 + 2.72 + 5.71 + 3.70 = 1372 + 98 + 35 + 3 = 1508

(1021)4 = 1.43 + 0.42 + 2.41 + 1.40 = 64 + 0 + 8 + 1 = 73

(1021)3 = 1.33 + 0.32 + 2.31 + 1.30 = 27 + 0 + 6 + 1 = 34

Demonstração: A demonstração do teorema usa o teorema da divisão, mas não vamos dá-la em detalhes. A idéia geral da prova consiste em considerar a divisão de n por b, depois pegar o quociente e dividir por b, depois pegar o novo quociente e dividir por b, e assim sucessivamente, até que dê um quociente 0. Os restos dessas divisões sucessi-vas, na ordem inversa (do último para o primeiro) formarão exatamente os valores Di (ou seja, os dígitos da representação na base b).

A demonstração do teorema nos permite deduzir um método (um algoritmo) para con-verter um número n qualquer para uma base b qualquer:

• Dividir n por b, guardar o resto.

• Depois, tomar o quociente da divisão anterior e dividir por b novamente, guar-dando o novo resto.

• Repetir essas divisões por b sucessivamente guardando os restos. Parar quando o quociente der 0.

• Retornar os valores na ordem invertida.

Desafio: Tente implementar este algoritmo! Uma sugestão: guarde os restos da divisão em uma lista e a inverta no final. Esta será a representação do número na base b.

A partir da representação em uma base b qualquer, podemos definir algoritmos para realizar adição e multiplicação similares aos algoritmos que aprendemos no ensino bá-sico para a base 10:

• Somar dígito a dígito da direita para a esquerda

(12)

• 0+0 dá 0 e não transporta nada

• 0+1 ou 1+0 dá 1 e não transporta nada

• 1+1 dá 0 e transporta 1

Desafio: Tente implementar (em qualquer linguagem, mas recomendo Python) a soma de dois números quaisquer em uma base b qualquer!

“Já não há condenação para quem está em Cristo Jesus.”

Referências

Documentos relacionados

Alguns implementos utilizados na silvicultura podem ser utilizados em ILPF, tais como: subsolador/sulcador florestal para preparo das linhas de plantio das

Rum Branco (white rum), gin, xarope de Laranja (orange syrup, sumo de lima (lime juice), Campari, Licor de Amora (blackberry

QUESTÃO 1 – Os números representados em pontos da reta que não correspondem a números racionais, possuem sua representação decimal infinita e não periódica

3 – Numa reta numerada, considere os pontos que representam os números -1

Os cinco artigos publicados tematizam gênero, identidade de gênero e orientação sexual, apontando problemas de: reprodução de dualismos e estereótipos pela lei, como nos casos

» Resolver problemas envolvendo divisão de números naturais com resto. » Associar uma fração com denominador 10 à sua representação decimal. » Associar 50% a sua representação

A idéia de introduzir códigos universais adaptativos (UA) consiste em combinar dois ou mais códigos com padrão, de modo que o código adaptativo resultante se beneficie das

Números inteiros: conjunto Z e seus subconjuntos, representação dos números inteiros na reta numerada, valor absoluto de um número inteiro, operações com números inteiros