SlideShare uma empresa Scribd logo
1 de 103
Baixar para ler offline
Alguns T´opicos de Matem´atica Discreta
Ana Paula Tom´as
Departamento de Ciˆencia de Computadores
Faculdade de Ciˆencias do Porto
2005
Conte´udo
1 Conjuntos 1
1.1 Opera¸c˜oes com Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Representa¸c˜ao de N´umeros em Computador 7
2.1 Sistema de Representa¸c˜ao Posicional . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Rela¸c˜ao entre bin´ario, octal e hexadecimal . . . . . . . . . . . . . . . . 11
2.1.2 Adi¸c˜ao e multiplica¸c˜ao na base b . . . . . . . . . . . . . . . . . . . . . 12
2.1.3 Representa¸c˜ao de n´umeros com um n´umero fixo de d´ıgitos . . . . . . . 15
2.1.4 Representa¸c˜ao de n´umeros negativos . . . . . . . . . . . . . . . . . . . 16
2.2 Adi¸c˜ao e Subtrac¸c˜ao em n Bits . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 Adi¸c˜ao e subtrac¸c˜ao bin´aria de inteiros n˜ao negativos . . . . . . . . . 19
2.2.2 Adi¸c˜ao de inteiros em complemento para 2 . . . . . . . . . . . . . . . 20
2.2.3 Subtrac¸c˜ao de inteiros em complemento para 2 . . . . . . . . . . . . . 20
2.3 Representa¸c˜ao em V´ırgula Fixa . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Representa¸c˜ao em V´ırgula Flutuante . . . . . . . . . . . . . . . . . . . . . . . 21
3 Algumas No¸c˜oes de Divisibilidade 23
3.1 Bases de Numera¸c˜ao e Crit´erios de Divisibilidade . . . . . . . . . . . . . . . . 23
3.2 No¸c˜ao de Divisor e de M´ultiplo . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Factoriza¸c˜ao em Primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1 Determina¸c˜ao de primos: crivo de Erast´otenes . . . . . . . . . . . . . 27
3.3.2 C´alculo de divisores por an´alise da factoriza¸c˜ao em primos . . . . . . . 28
3.4 M´aximo Divisor Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.1 C´alculo do m´aximo divisor comum pelo algoritmo de Euclides . . . . . 29
3.5 M´ınimo M´ultiplo Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.6 Congruˆencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
i
4 Indu¸c˜ao Matem´atica 33
4.1 Princ´ıpio de Indu¸c˜ao Matem´atica . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1 Erros frequentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Indu¸c˜ao Forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.1 Outras formula¸c˜oes do princ´ıpio de indu¸c˜ao . . . . . . . . . . . . . . . 42
5 Rela¸c˜oes Bin´arias 43
5.1 Rela¸c˜oes Bin´arias de A em B . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1.1 Opera¸c˜oes com rela¸c˜oes bin´arias . . . . . . . . . . . . . . . . . . . . . 43
5.1.2 Matriz duma rela¸c˜ao bin´aria . . . . . . . . . . . . . . . . . . . . . . . 45
5.1.3 Fun¸c˜oes de A em B . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2 Rela¸c˜oes Bin´arias Definidas num Conjunto . . . . . . . . . . . . . . . . . . . . 47
5.2.1 Propriedades das rela¸c˜oes bin´arias definidas em A . . . . . . . . . . . 48
5.2.2 Grafo da rela¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3 Rela¸c˜oes de Compatibilidade e de Equivalˆencia . . . . . . . . . . . . . . . . . 50
5.3.1 Classes de equivalˆencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.3.2 Parti¸c˜oes e rela¸c˜oes de equivalˆencia . . . . . . . . . . . . . . . . . . . . 53
5.3.3 Classes de Compatibilidade . . . . . . . . . . . . . . . . . . . . . . . . 55
5.4 Rela¸c˜oes de Ordem Parcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4.1 Diagrama de Hasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.4.2 M´aximos, m´ınimos, supremo, ´ınfimo, majorantes e minorantes . . . . 59
5.5 Fechos duma Rela¸c˜ao para uma Propriedade . . . . . . . . . . . . . . . . . . . 60
5.5.1 Fecho transitivo e percursos em grafos . . . . . . . . . . . . . . . . . . 62
5.5.2 Fecho transitivo duma rela¸c˜ao definida num conjunto finito . . . . . . 68
6 Grafos e Multigrafos 71
6.1 Grafos Dirigidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.1.1 Multigrafos dirigidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.1.2 Grafos, Percursos e rela¸c˜oes bin´arias . . . . . . . . . . . . . . . . . . . 74
6.2 Grafos N˜ao Dirigidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.2.1 Grafos Conexos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2.2 Condi¸c˜ao necess´aria para um grafo ser conexo . . . . . . . . . . . . . . 78
6.3 ´Arvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.3.1 ´Arvores com ra´ız . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.4 Percursos Eulerianos e Hamiltonianos . . . . . . . . . . . . . . . . . . . . . . 82
6.5 Grafos Planares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.6 Isomorfismo de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
ii
6.7 Colora¸c˜ao de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.8 Grafos com Valores Associados aos Ramos . . . . . . . . . . . . . . . . . . . . 86
6.8.1 Determina¸c˜ao da distˆancia m´ınima . . . . . . . . . . . . . . . . . . . . 87
6.9 Grafos com S´ımbolos Associados aos Ramos . . . . . . . . . . . . . . . . . . . 93
iii
iv
Pref´acio
Estes apontamentos tˆem por base material elaborado em anos anteriores para disciplinas da
licenciatura em Ciˆencia de Computadores [5, 6, 7], o qual foi agora revisto e nalguns t´opicos
completado para servir de apoio `a disciplina de Matem´atica para Ciˆencia de Computadores,
no ano lectivo de 2005/06. N˜ao visam substituir a leitura da bibliografia recomendada pelos
docentes e n˜ao cobrem actualmente todos os t´opicos abordados na disciplina.
v
vi
Cap´ıtulo 1
Conjuntos
Neste cap´ıtulo vamos essencialmente recordar ou introduzir alguma da nota¸c˜ao que ´e usada
para conjuntos. Tomamos a no¸c˜ao de conjunto como primitiva, convencionando que um
conjunto ´e constitu´ıdo por elementos – objectos materiais ou entes abstractos que tˆem
alguma propriedade em comum (no caso extremo, a de pertencerem todos a esse conjunto).
Os conjuntos podem ser vazios (i.e. sem elementos). Em geral, usamos letras mai´usculas
para designar conjuntos e min´usculas para referir os seus elementos. Para indicar que a ´e um
elemento do conjunto A escrevemos a ∈ A. Os conjuntos podem ser especificados em extens˜ao
– exibindo todos os elementos que os constituem – ou indicando a propriedade que caracteriza
os seus elementos – defini¸c˜ao em compreens˜ao. Por exemplo, {1, 2, 3, 4} e {n | n ∈ Z+∧n ≤ 4}.
Nota¸c˜ao. Sejam A e B conjuntos.
a ∈ A a pertence a A, a ´e elemento de A
a /∈ A a n˜ao pertence a A
A = B igualdade de conjuntos (qualquer que seja x,
x ∈ A se e s´o se x ∈ B)
A ⊆ B A contido em B, A subconjunto de B
(qualquer que seja x, se x ∈ A ent˜ao x ∈ B)
A ⊇ B A cont´em B, B ⊆ A
A ⊂ B A contido propriamente em B,
A subconjunto pr´oprio de B
A ⊆ B ∧ A = B
A ⊃ B A cont´em propriamente B
A = B A ⊆ B ou B ⊆ A
∅ ou {} conjunto vazio
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
1.1. OPERAC¸ ˜OES COM CONJUNTOS 2
O conjunto dos subconjuntos de A, representa-se por P(A) ou 2A. Qualquer con-
junto A pertence ao seu conjunto de subconjuntos, isto ´e A ∈ P(A). Por exemplo,
P({1, 2, 3}) = {∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
O conjunto P({1, 2, 3}) tem 23 elementos. Tamb´em se pode verificar que P(P({1, 2, 3}))
tem 223
elementos. Se A tem n elementos, P(A) tem 2n elementos.
Nestes apontamentos, N representa o conjunto dos inteiros n˜ao negativos (incluindo
assim tamb´em 0).
N inteiros n˜ao negativos (em vez de N0)
Z inteiros
Q racionais
R reais
R+
0 reais n˜ao negativos
R+ reais positivos
R− reais negativos
Um conjunto A n˜ao vazio ´e finito se e s´o se existir uma bijecc˜ao de A em {x ∈ N | x < n}
para algum n ∈ N. Nesse caso, n ´e o cardinal (n´umero de elementos) de A. Usamos |A| (ou,
alternativamente, #A) para designar o cardinal de A. O cardinal do conjunto vazio ´e zero.
A prop´osito de quest˜oes de nota¸c˜ao, ´e de salientar que
{n | n ∈ N}
{n}, com n ∈ N
denotam conjuntos diferentes: o primeiro ´e N e o segundo ´e constitu´ıdo por um ´unico inteiro
(que est´a a ser representado pela letra n).
1.1 Opera¸c˜oes com Conjuntos
A intersec¸c˜ao de A com B representa-se por A ∩ B, e ´e o conjunto dos elementos que
pertencem a ambos os conjuntos.
A ∩ B = {x | x ∈ A e x ∈ B}
A uni˜ao de A com B que se representa por A ∪ B, ´e o conjunto dos elementos que
pertencem a pelo menos um dos conjuntos.
A ∪ B = {x | x ∈ A ou x ∈ B}
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
1.1. OPERAC¸ ˜OES COM CONJUNTOS 3
O complementar de B em A representa-se por A  B, e ´e o conjunto dos elementos de
A que n˜ao pertencem a B.
A  B = {x | x ∈ A e x /∈ B}
Quando est´a implic´ıto um dado universo U, chama-se complementar de A, e representa-
se por A, ao complementar de A em U, ou seja a U  A.
Exemplo 1 Vamos provar que A  (B ∪ C) = (A  B) ∩ (A  C). Para tal vamos mostrar que
x ∈ A  (B ∪ C) ⇔ x ∈ (A  B) ∩ (A  C), qualquer que seja x.
x ∈ A  (B ∪ C) ⇔ x ∈ A ∧ x /∈ B ∪ C (por def. de diferen¸ca)
⇔ x ∈ A ∧ (x /∈ B ∧ x /∈ C) (por def. uni˜ao)
⇔ x ∈ A  B ∧ x ∈ A  C (por def. de diferen¸ca)
⇔ x ∈ (A  B) ∩ (A  C) (por def. intersec¸c˜ao)
Exemplo 2 Quaisquer que sejam os conjuntos A, B ⊆ U, tem-se A ∪ B = A ∩ B. De facto,
se x ∈ A ∪ B ent˜ao, por defini¸c˜ao de complementar, x /∈ A ∪ B. Logo, x /∈ A e x /∈ B. Mas,
x /∈ A sse x ∈ A. E, x /∈ B sse x ∈ B. Ent˜ao, x ∈ A e x ∈ B. Donde, x ∈ A∩B. Mostr´amos
assim que A ∪ B ⊆ A ∩ B. Reciprocamente,
x ∈ A ∩ B =⇒ (x ∈ A ∧ x ∈ B) (por def. ∩)
=⇒ (x /∈ A ∧ x /∈ B) (por def. complementar)
=⇒ x /∈ (A ∪ B) (por def. ∪)
=⇒ x ∈ A ∪ B (por def. complementar)
ou seja, A ∪ B ⊇ A ∩ B.
Exerc´ıcio 1.1.1 Suponha que os conjuntos indicados s˜ao subconjuntos do universo U. Sendo
A, B e C subconjuntos de U quaisquer, mostre cada uma das propriedades:
(a) A  B = A ∩ B = B  A (j) ∅ = U (r) U = ∅
(b) A  B = ∅ sse A ⊆ B (k) A  A = ∅ (s) A  ∅ = A
(c) A  B = A sse A ∩ B = ∅ (l) A = A (t) A ∪ U = U
(d) (A  B) ∪ (B  A) = (A ∪ B)  (B ∩ A) (m) A ∪ A = U (u) A ∩ A = ∅
(e) (A ∩ B) ∩ C = A ∩ (B ∩ C) (n) A ∩ U = A (v) A ∩ A = A
(f) (A ∪ B) ∪ C = A ∪ (B ∪ C) (o) A ∪ ∅ = A
(g) (A ∪ B) ∩ C = (A ∩ C) ∪ (B ∩ C)
(h) (A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C) (p) A ∪ B = A ∩ B
(i) A  (B ∪ C) = (A  B) ∩ (A  C) (q) A ⊆ B sse B ⊆ A
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
1.1. OPERAC¸ ˜OES COM CONJUNTOS 4
Exemplo 3 A t´ıtulo de exemplo, vamos analisar a veracidade ou falsidade das afirma¸c˜oes
seguintes e justific´a-la.
1. Qualquer que seja x ∈ Z, existe y ∈ Z tal que x ≤ y e x = y.
∀x ∈ Z ∃y ∈ Z (x ≤ y ∧ x = y)
A afirma¸c˜ao ´e verdadeira porque, sendo o conjunto dos inteiros infinito, se x ´e inteiro,
x + 1 tamb´em ´e um inteiro e x + 1 ´e superior a x. Ou seja, dado um x qualquer, se
considerarmos que y ´e x + 1, satisfazemos a condi¸c˜ao (x ≤ y ∧ x = y). Note que y
depender´a de x.
2. Existe y ∈ Z tal que para todo x ∈ Z se tem x ≤ y.
∃y ∈ Z ∀x ∈ Z x ≤ y
A afirma¸c˜ao ´e falsa porque em particular se x fosse y+1 ent˜ao teriamos que ter y+1 ≤ y,
que n˜ao ´e satisfaz´ıvel (j´a que ´e equivalente a 1 ≤ 0).
3. Existe um inteiro n˜ao negativo que n˜ao excede qualquer outro inteiro n˜ao
negativo.
∃x ∈ Z+
0 ∀y ∈ Z+
0 x ≤ y
A afirma¸c˜ao ´e verdadeira. O inteiro 0 ´e menor ou igual que cada um dos inteiros n˜ao
negativos. Aqui, Z+
0 denota o conjunto dos inteiros n˜ao negativos, o qual identific´amos
tamb´em por N.
4. Existe x ∈ Z tal que x ´e maior do que qualquer outro inteiro y.
∃x ∈ Z ∀y ∈ Z x > y
A afirma¸c˜ao ´e falsa (an´aloga `a 2).
5. Para todo A ⊆ Z, tem-se P(A) = {∅}.
A afirma¸c˜ao ´e falsa, porque {1} ´e um subconjunto de Z e P({1}) = {∅, {1}} = {∅}.
6. Para todo A ⊆ Z, se A = ∅ ent˜ao P(A) = {∅}.
A afirma¸c˜ao ´e verdadeira. S´o existe um subconjunto de Z que ´e vazio, e P(∅) = {∅}.
Note que {∅} ´e um conjunto que tem um elemento. Esse elemento ´e ∅, ou seja, ´e o
conjunto vazio.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
1.1. OPERAC¸ ˜OES COM CONJUNTOS 5
7. Tem-se P(A) = ∅, para algum A ⊆ Z.
∃A (A ⊆ Z ∧ P(A) = ∅)
A afirma¸c˜ao ´e falsa, porque qualquer que seja o subconjunto A de Z, o conjunto vazio ´e
um elemento de P(A).
8. Quaisquer que sejam x, y ∈ Z, tem-se x ≤ y ou y ≤ x.
∀x ∈ Z ∀y ∈ Z (x ≤ y ∨ y ≤ x)
Dizer que x ≤ y equivale a dizer que existe um inteiro n˜ao negativo z tal que y = x + z.
´E verdade que (x ≤ y ∨ y ≤ x), quaisquer que sejam os inteiros x e y.
Como x − y ´e inteiro, quaisquer que sejam x e y, se x − y ´e n˜ao negativo, ent˜ao y ≤ x
pois x = y + (x − y). Se x − y ´e negativo, ent˜ao y − x ´e um inteiro positivo, e como
y = x + (y − x), tem-se x ≤ y.
9. Qualquer que seja A ⊆ Z, se A = {−1, 2, 3} ent˜ao 4 ∈ A.
∀A ( (A ⊆ Z ∧ A = {−1, 2, 3}) ⇒ 4 ∈ A) )
Falso. Existe um subconjunto de Z que ´e diferente de {−1, 2, 3} e que n˜ao tem o 4. Por
exemplo, o conjunto vazio.
10. Quaisquer que sejam A, B ⊆ Z, se 5 ∈ A  B ent˜ao 5 ∈ A.
∀A ∀B( (A ⊆ Z ∧ B ⊆ Z ∧ 5 ∈ A  B) ⇒ 5 ∈ A )
A afirma¸c˜ao ´e verdadeira. Quaisquer que sejam os subconjuntos A e B de Z, tem-se
5 ∈ A  B se e s´o se 5 ∈ A e 5 /∈ B. Logo, se 5 ∈ A  B ent˜ao 5 ∈ A.
11. Para todo o x ∈ Z, e quaisquer que sejam A, B ⊆ Z, se x ∈ A  B ent˜ao x ∈ A.
A afirma¸c˜ao ´e verdadeira. A justifica¸c˜ao ´e semelhante `a dada para a afirma¸c˜ao anterior
(claro que ´e necess´ario falar em x e n˜ao em 5!).
12. Existe x ∈ Z tal que x ∈ A  B, quaisquer que sejam A, B ⊆ Z.
Esta afirma¸c˜ao pode ser traduzida pela express˜ao l´ogica
∃x (x ∈ Z ∧ ( ∀A ∀B ( (B ⊆ Z ∧ A ⊆ Z) ⇒ x ∈ A  B) ))
a qual escrevemos por vezes como
∃x ∈ Z ∀A ⊆ Z ∀B ⊆ Z (x ∈ A  B)
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
1.1. OPERAC¸ ˜OES COM CONJUNTOS 6
que ´e falsa. Quaisquer que sejam os conjuntos A e B se A = B ent˜ao AB = ∅. Assim,
se tomarmos, por exemplo, A = B = {1}, os conjuntos A e B s˜ao subconjuntos de Z e
n˜ao existe qualquer inteiro x tal que x ∈ A  B.
13. 2 + 2 = 4 ou
√
2 ∈ Z.
A afirma¸c˜ao ´e verdadeira porque embora
√
2 /∈ Z, ´e verdade que 2 + 2 = 4.
14. Se 2 + 2 = 4 ent˜ao
√
2 ∈ Z.
A afirma¸c˜ao ´e equivalente a “2 + 2 = 4 ou
√
2 ∈ Z”.
15. Se
√
2 ∈ Z ent˜ao 2 + 2 = 4.
A afirma¸c˜ao ´e equivalente a “
√
2 /∈ Z ou 2 + 2 = 4”, e como
√
2 /∈ Z, a afirma¸c˜ao ´e
verdadeira.
16.
√
2 ∈ Z ou 2 + 2 = 4.
A afirma¸c˜ao ´e verdadeira porque
√
2 ∈ Z.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
Cap´ıtulo 2
Representa¸c˜ao de N´umeros em
Computador
Do mesmo modo que “5692 segundos”, “94 minutos e 52 segundos”, “1 hora, 34 minutos e 52
segundos” s˜ao designa¸c˜oes ou representa¸c˜oes diferentes da mesma entidade, tamb´em 5692(10),
13074(8) e 1011000111100(2) o s˜ao. De facto,
1 34 52(60) ≡ 1h34 52 ≡ 1 × 602
+ 34 × 601
+ 52 × 600
5 6 9 2(10) ≡ 5 × 103
+ 6 × 102
+ 9 × 101
+ 2 × 100
1 3 0 7 4(8) ≡ 1 × 84
+ 3 × 83
+ 0 × 82
+ 7 × 81
+ 4 × 80
1 0 1 1 0 0 0 1 1 1 1 0 0(2) ≡ 1 × 212
+ 0 × 211
+ 1 × 210
+ 1 × 29
+ 0 × 28
+ 0 × 27
+
0 × 26
+ 1 × 25
+ 1 × 24
+ 1 × 23
+ 1 × 22
+ 0 × 21
+ 0 × 20
dizendo-se que 60, 10, 8 e 2 s˜ao as bases de numera¸c˜ao, respectivas. Habitualmente, escreve-se
5692 em vez de 5692(10), porque a base mais usual para representa¸c˜ao de inteiros ´e a base 10,
designada por decimal. As bases 8 e 2 s˜ao designadas por octal e bin´aria. Se considerarmos
as potˆencias de 2,
212 211 210 29 28 27 26 25 24 23 22 21 20
4096 2048 1024 512 256 128 64 32 16 8 4 2 1
podemos observar que 5692 = 4096+1596 = 4096+(1024+572) = 4096+1024+(512+60) =
. . . = 4096 + 1024 + 512 + 32 + 16 + 8 + 4 = 1011000111100(2).
Analogamente, se considerarmos as potˆencias de 3,
38 37 36 35 34 33 32 31 30
6561 2187 729 243 81 27 9 3 1
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 8
podemos verificar que 5692 = 21210211(3). De facto, 5692 = 2 × 2187 + 1318 = 2 × 2187 +
(1 × 729 + 589) = 2 × 2187 + 1 × 729 + (2 × 243 + 103) = . . . = 2 × 2187 + 1 × 729 + 2 × 243 +
1 × 81 + 2 × 9 + 1 × 3 + 1 = 21210211(3).
2.1 Sistema de Representa¸c˜ao Posicional
Num sistema de numera¸c˜ao de base b usam-se b s´ımbolos diferentes para b d´ıgitos (de 0 a
b − 1). Os n´umeros s˜ao representados por uma sequˆencia de d´ıgitos.
Os d´ıgitos na base 10 s˜ao 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Os d´ıgitos na base 2 s˜ao 0 e 1, e
normalmente s˜ao designados por bits. Por exemplo,
1011102 = 1 × 25
+ 0 × 24
+ 1 × 23
+ 1 × 22
+ 1 × 21
+ 0 × 20
Se a = rmbm + rm−1bm−1 + . . . + r2b2 + r1b1 + r0b0 com rm = 0 e 0 ≤ ri ≤ b − 1 para
0 ≤ i ≤ m ent˜ao
a ≡ rm . . . r2r1r0 (b)
´e a representa¸c˜ao de a na base b. Os coeficientes r0, r1, r2, . . . rm chamam-se d´ıgitos de repre-
senta¸c˜ao de a na base b, sendo r0 o d´ıgito menos significativo e rm o d´ıgito mais significativo.
A representa¸c˜ao ´e ´unica, o que ´e consequˆencia da unicidade do quociente e resto da divis˜ao
inteira.
Proposi¸c˜ao 1 (divis˜ao euclideana de inteiros) Quaisquer que sejam a ∈ Z e b ∈ Z+ existe
um e um s´o q ∈ Z e um e um s´o r ∈ Z tal que b = aq + r e 0 ≤ r < b.
A q chama-se quociente e a r resto da divis˜ao inteira de a por b, sendo importante a
condi¸c˜ao 0 ≤ r < b para garantir a unicidade.
Corol´ario 1.1 Quaisquer que sejam a ∈ Z+ e b ∈ Z+  {1}, existem inteiros ´unicos r0, r1,
r2, . . . rm tais que a = rmbm + rm−1bm−1 + . . . + r2b2 + r1b1 + r0b0, rm = 0 e 0 ≤ ri ≤ b − 1
para 0 ≤ i ≤ m.
Prova: Sejam a e b inteiros com a > 0 e b > 1. Tem-se ou a < b ou a ≥ b.
Se a < b ent˜ao a = 0b + a. Portanto, 0 < r0 = a.
Se a ≥ b ent˜ao, por defini¸c˜ao de divis˜ao inteira, existem q0 e r0 ´unicos tais que a = bq0 +r0,
com 0 ≤ r0 < b. Se q0 < b, toma-se r1 = q0 e obtem-se a = r1b + r0. Se q0 ≥ b, ent˜ao o
processo repete-se agora para q0. Ou seja, q0 = bq1 + r1, com 0 ≤ r1 < b. Logo,
a = bq0 + r0 = b(bq1 + r1) + r0 = b2
q1 + br1 + r0
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 9
Se q1 < b, toma-se r2 = q0 e obtem-se a = b2r2 +br1 +r0. Se q1 ≥ b, ent˜ao o processo repete-se
agora para q1, e sucessivamente. O processo termina porque a > q0 > q1 > . . . e qualquer qi
´e um inteiro n˜ao negativo.
Esta prova indica um algoritmo para determina¸c˜ao da representa¸c˜ao dum inteiro a numa
base b.
Exemplo 4 Tem-se 125(10) = 53 = 1000(5) = 26 + 25 + 24 + 23 + 22 + 20 = 1111101(2) =
175(8) = 7D(16). De facto,
125 5
0 25 5
r0 0 5 5
r1 0 1
r2
r3
125 2
1 62 2
r0 0 31 2
r1 1 15 2
r2 1 7 2
r3 1 3 2
r4 1 1
r5
r6
125 8
5 15 8
r0 7 1
r1
r2
125 16
13 7
r0
r1
No entanto, quando se conhecem potˆencias da base, pode ser mais f´acil determinar a
representa¸c˜ao por outro m´etodo. Por exemplo, para a base 2,
46(10) = 32(10) + 8(10) + 4(10) + 2(10) = 101110(2)
enquanto se se aplicar o algoritmo dado pela prova anterior teria
46 2
0 23 2
r0 1 11 2
r1 1 5 2
r2 1 2 2
r3 0 1
r4
r5
46(10) = 23 × 2 + 0 = (11 × 2 + 1) × 2 + 0 = ((5 × 2 + 1) × 2 + 1) × 2 + 0
= (((2 × 2 + 1) × 2 + 1) × 2 + 1) × 2 + 0
= ((((2 × 1 + 0) × 2 + 1) × 2 + 1) × 2 + 1) × 2 + 0
= 1 × 25
+ 0 × 24
+ 1 × 23
+ 1 × 22
+ 1 × 21
+ 0 × 20
= 101110(2)
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 10
Pode interessar tamb´em saber qual a representa¸c˜ao decimal dum inteiro dado
numa base b. Para a obter, bastar´a aplicar a defini¸c˜ao e efectuar os c´alculos na base 10.
101110(2) = 1 × 25
+ 0 × 24
+ 1 × 23
+ 1 × 22
+ 1 × 21
+ 0 × 20
= 32 + 8 + 4 + 2 = 46(10)
101110(3) = 1 × 35
+ 0 × 34
+ 1 × 33
+ 1 × 32
+ 1 × 31
+ 0 × 30
= 162 + 27 + 9 + 3 = 201(10)
Para al´em da base 2, s˜ao bastante usadas em Computa¸c˜ao as bases 8 (octal) e 16 (hexa-
decimal). Os d´ıgitos em octal s˜ao 0, 1, 2, 3, 4, 5, 6 e 7. Embora os restos da divis˜ao por 16
sejam 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,. . . , 15, por conven¸c˜ao, os d´ıgitos em hexadecimal
a partir de 10 s˜ao representados pelas letras mai´usculas de A a F. Deste modo n˜ao haver´a
qualquer ambiguidade de representa¸c˜ao (por exemplo, fica claro que o hexadecimal 15 designa
o decimal 1×16+5 e F o decimal 15). Os n´umeros representados na base octal s˜ao por vezes
indexados por (o), por exemplo 235(o), e os representados na base hexadecimal por (h), por
exemplo F15A(h).
Designa¸c˜ao Base D´ıgitos
Bin´ario 2 0 a 1
Octal 8 (=23) 0 a 7
Hexadecimal 16 (=24) 0 a 9, A, B, C, D, E, F
Decimal 10 0 a 9
Exemplo 5 A sequˆencia 78412 n˜ao pode representar nenhum inteiro na base 4 porque 7, 8 e 4
n˜ao s˜ao d´ıgitos base 4. A sequˆencia 001231 n˜ao ´e representa¸c˜ao numa base de numera¸c˜ao,
no sentido acima definido, porque teria zeros n˜ao significativos. A sequˆencia 123100 pode
representar um inteiro em qualquer base b superior a 4.
Exerc´ıcio 2.1.1 Converter para bin´ario: 153(10), 153(6), 153(8), 153(16).
Exerc´ıcio 2.1.2 Converter para hexadecimal: 153(10), 151323(10), 153(8), 1010101111(2) .
Exerc´ıcio 2.1.3 Converter para octal: 1123(4), 151323(10), 153(8), 1010101111(2) .
Exerc´ıcio 2.1.4 Converter para a base 251 e 666 os seguintes n´umeros em decimal:
1383, 1498, 1500, 1580, 1640
Exerc´ıcio 2.1.5 Represente x, xn e xn − 1 na base x, para x > 1 e n ∈ N.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 11
2.1.1 Rela¸c˜ao entre bin´ario, octal e hexadecimal
Seja por exemplo, 101011110(2) um bin´ario que se pretende converter para octal. Como foi
visto, o inteiro que esse bin´ario representa ´e
1 × 28
+ 0 × 27
+ 1 × 26
+ 0 × 25
+ 1 × 24
+ 1 × 23
+ 1 × 22
+ 1 × 2 + 0
ou seja 350. A representa¸c˜ao octal correspondente pode ser obtida agrupando os d´ıgitos
bin´arios 3 a 3: uma vez que 8 = 23 e 82 = 26, tem-se
26
(1×22
+0×2+1×2)+23
(0×22
+1×2+1)+(1×22
+1×2+0) = 82
×5+8×3+6 = 536(2)
Em geral se ak . . . a5a4a3a2a1a0(2), sendo k ≥ 0, representa o inteiro
ak2k
+ . . . + a525
+ a424
+ a323
+ a222
+ a121
+ a020
ent˜ao a representa¸c˜ao em octal do mesmo inteiro pode ser obtida da forma descrita:
ak2k
+ . . . + 23
(a522
+ a421
+ a320
) + (a222
+ a121
+ a020
) =
ak2k
+ . . . + 8(a522
+ a421
+ a320
) + (a222
+ a121
+ a020
)
Notar que na express˜ao resultante, qualquer potˆencia de 8 tem por coeficiente
ai+222
+ ai+12 + ai
para algum i, o qual ´e sempre n˜ao negativo e inferior a 8, podendo assim ser d´ıgito da
representa¸c˜ao octal. A cada d´ıgito octal correspondem 3 d´ıgitos em bin´ario. Do mesmo
modo, a cada d´ıgito hexadecimal correspondem 4 d´ıgitos em bin´ario. Assim, para converter
um bin´ario a hexadecimal, agrupam-se os seus d´ıgitos em grupos de 4 (da direita para a
esquerda) correspondendo a cada um desses grupos um d´ıgito hexadecimal. Por exemplo,
101011110(2) ⇒ 1 | 0101 | 1110 ⇒ 1 | 5 | E ⇒ 15E(h)
Para converter um bin´ario a octal procede-se de modo idˆentico mas formando grupos de 3.
Por exemplo,
101011110(2) ⇒ 101 | 011 | 110 ⇒ 5 | 3 | 6 ⇒ 536(o)
Inversamente, se se pretender converter de hexadecimal a bin´ario basta associar a cada um
dos d´ıgitos hexadecimal o grupo de 4 d´ıgitos bin´arios correspondente. Por exemplo,
3AC3A(h) ⇒ 0011 | 1010 | 1100 | 0011 | 1010 ⇒
11 | 1010 | 1100 | 0011 | 1010 ⇒ 111010110000111010(2)
Notar a elimina¸c˜ao dos zeros n˜ao significativos. O que se acaba de ilustrar ´e um caso particular
da proposi¸c˜ao seguinte.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 12
Proposi¸c˜ao 2 Se z ´e um inteiro positivo, a cada d´ıgito (com poss´ıvel excep¸c˜ao do mais signi-
ficativo) da representa¸c˜ao de z na base bn corresponde um grupo de n d´ıgitos na representa¸c˜ao
de z na base b, qualquer que seja n inteiro positivo. Mais concretamente, se
akak−1 . . . atnatn−1 . . . a2na2n−1 . . . anan−1 . . . a1a0
com k ≥ 0 ´e a representa¸c˜ao na base b de um inteiro positivo z ent˜ao, a representa¸c˜ao do
mesmo inteiro na base bn ´e
wtwt−1 . . . w1w0
sendo t+1 o n´umero de blocos de n d´ıgitos da representa¸c˜ao de z na base b (podendo o ´ultimo
ser completado por zeros n˜ao significativos), e wi (i ≤ t) o d´ıgito da base bn que representa o
inteiro a2in−1 . . . ain+1ain(b) (representa¸c˜ao base b a menos de zeros n˜ao significativos).
Exemplo 6 Por exemplo, para converter 100313210(4) para a base 16, agrupam-se os d´ıgitos
2 a 2, da direita para a esquerda, pois 16 = 42.
100313210(4) = 01 | 00 | 31 | 32 | 10 = 10DE4(16)
Exerc´ıcio 2.1.6 Repita os exerc´ıcios 2.1.1 a 2.1.3.
Exerc´ıcio 2.1.7 Mostre a proposi¸c˜ao anterior. Comece por mostrar que wtwt−1 . . . w1w0
conforme descrito pode ser representa¸c˜ao base bn de z; use em seguida o facto da representa¸c˜ao
numa base ser ´unica para concluir que wtwt−1 . . . w1w0 ´e a representa¸c˜ao de z. Mostre depois
que se wtwt−1 . . . w1w0 representa z na base bn, a representa¸c˜ao de z na base b ´e
akak−1 . . . atnatn−1 . . . a2na2n−1 . . . anan−1 . . . a1a0
2.1.2 Adi¸c˜ao e multiplica¸c˜ao na base b
Recorde como se adicionam dois inteiros representados na base 10, calculando por exemplo
987654 + 73561.
987654
+ 73561
. . . 5
(vai 0)
987654
+ 73561
. . . 15
(vai 1)
987654
+ 73561
. . . 215
(vai 1)
987654
+ 73561
. . . 1215
(vai 1)
987654
+ 73561
. . . 61215
(vai 1)
987654
+ 73561
. . . 061215
(vai 1)
987654
+ 73561
1061215
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 13
Algoritmo para Adi¸c˜ao (base 10). Se x e y s˜ao inteiros positivos representados na
base 10 por xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente ent˜ao a representa¸c˜ao na
base 10 de x + y, digamos spsp−1 . . . s1s0, pode ser obtida da forma seguinte.
xkxk−1 . . . x1x0
+ ymym−1ym−2 . . . y1y0
. . . s0
Caso x0 + y0 < 10, toma-se s0 = x0 + y0 e repete-se o processo para os d´ıgitos seguintes.
Sen˜ao, s0 ´e tal que x0 + y0 = 1s0, adicionando-se 1 a x1 + y1 repetindo-se o processo (global)
para os d´ıgitos seguintes. Quando k < m (respectivamente m < k) pode-se considerar xi = 0,
i ≥ k (respectivamente yi = 0, i ≥ m). Notar que p = max(k, m) ou p = max(k, m) + 1
sendo neste ´ultimo caso sp = 1.
Adi¸c˜ao (base 3). 2102(3) + 21(3) = (2 × 33 + 1 × 32 + 0 × 31 + 2 × 30) + (2 × 31 + 1 × 30) =
2 × 33 + 1 × 32 + (0 + 2) × 31 + (2 + 1) × 30 = 2 × 33 + 1 × 32 + (0 + 2) × 31 + (1 × 3 + 0) × 30 =
2 × 33 + 1 × 32 + (0 + 2 + 1) × 31 + 0 × 30 = 2 × 33 + (1 + 1) × 32 + 0 × 31 + 0 × 30 =
2 × 33 + 2 × 32 + 0 × 31 + 0 × 30.
2102(3)
+ 21(3)
. . . 0(3)
(vai 1)
2102(3)
+ 21(3)
. . . 00(3)
(vai 1)
2102(3)
+ 21(3)
. . . 200(3)
(vai 0)
2102(3)
+ 21(3)
2200(3)
Exerc´ıcio 2.1.8 Justifique que se x e y s˜ao inteiros positivos representados na base b por
xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente ent˜ao spsp−1 . . . s1s0, a representa¸c˜ao na
base b de x+y, pode ser obtida por um processo an´alogo ao descrito acima, ou seja, seguindo
o algoritmo habitual. Comece por notar que quando soma xi com yi o resultado ´e sempre
menor ou igual que 2b − 2, e portanto tanto xi + yi como xi + yi + 1 se representa como
0si ou 1si (pelo que ou “vai 0” ou “vai 1”), qualquer que seja i. Depois, use a defini¸c˜ao de
representa¸c˜ao na base b, `a semelhan¸ca do que se fez acima para b = 3.
Os algoritmos usuais para adi¸c˜ao e multiplica¸c˜ao base 10 s˜ao v´alidos quando se usam
representa¸c˜oes em qualquer outra base b, embora sejam obviamente diferentes as tabuadas
dessas opera¸c˜oes se escrevermos os resultados na base b. O mesmo se pode dizer para a
subtrac¸c˜ao (quando o aditivo ´e maior do que subtractivo) e para a divis˜ao inteira.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 14
Tabuadas de adi¸c˜ao e multiplica¸c˜ao para bin´ario:
+2 0 1
0 0 1
1 1 10
×2 0 1
0 0 0
1 0 1
Tabuadas de adi¸c˜ao e multiplica¸c˜ao para base 3:
+3 0 1 2
0 0 1 2
1 1 2 10
2 2 10 11
×3 0 1 2
0 0 0 0
1 0 1 2
2 0 2 11
Tabuadas de adi¸c˜ao e multiplica¸c˜ao para octal:
+8 0 1 2 3 4 5 6 7
0 0 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7 10
2 2 3 4 5 6 7 10 11
3 3 4 5 6 7 10 11 12
4 4 5 6 7 10 11 12 13
5 5 6 7 10 11 12 13 14
6 6 7 10 11 12 13 14 15
7 7 10 11 12 13 14 15 16
×8 0 1 2 3 4 5 6 7
0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7
2 0 2 4 6 10 12 14 16
3 0 3 6 11 14 17 22 25
4 0 4 10 14 20 24 30 34
5 0 5 12 17 . . . . . . . . . . . . . . .
6 0 6 . . . . . . . . . . . . . . . . . . . . . . . .
7 0 7 . . . . . . . . . . . . . . . . . . . 61
Exerc´ıcio 2.1.9 Complete a tabuada de multiplica¸c˜ao base 8 e determine as tabelas para a
base hexadecimal.
Assim, por exemplo, 1021(3) × 211(3) = 1000201(3), ou seja, 34(10) × 22(10) = 748(10),
porque:
1 0 2 1(3)
× 2 1 1(3)
1 0 2 1
1 0 2 1
+ 2 1 1 2
1 0 0 0 2 0 1(3)
3 4(10)
× 2 2(10)
6 8
+ 6 8
7 4 8(10)
`A esquerda, todos os valores interm´edios est˜ao representados na base 3 e `a direita na base 10
(visando recordar o algoritmo da multiplica¸c˜ao e estabelecer a compara¸c˜ao).
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 15
Exerc´ıcio 2.1.10 Calcule:
(i) 1110010(2) + 111001111(2) em bin´ario.
(ii) 1F5(h) + 111001111(2) em hexadecimal.
(iii) 1330(4) + 123(4) em octal.
(iv) 1F5(h) + ABCD(h) + 1FB(h) em hexadecimal.
(v) ABCD(h) − 1FB(h) em hexadecimal.
(vi) 73542(o) × 27(10) em octal.
(vii) 73542(o)/27(10) em octal.
(viii) 111000010(2) /111(2) em bin´ario.
2.1.3 Representa¸c˜ao de n´umeros com um n´umero fixo de d´ıgitos
Num computador cada inteiro ´e representado por um n´umero fixo de bits. Em 8 bits, 13 seria
representado por 00001101. Isto ´e, introduzem-se 0’s `a esquerda sempre que o n´umero de bits
da representa¸c˜ao do inteiro seja menor que o n´umero de bits que se fixou.
Se n representar o n´umero de bits que se fixou para a representa¸c˜ao, os bits s˜ao numerados
da esquerda para a direita por bitn−1, bitn−2, . . . , bit1 e bit0. O bitn−1 diz-se o bit mais
significativo e bit0 ´e o menos significativo.
Quando se fixa o n´umero de bits da representa¸c˜ao, limita-se tamb´em os valores que podem
ser representados. Se, por exemplo, o n´umero de bits for 8 ent˜ao o maior inteiro positivo que
se pode representar ´e:
1 1 1 1 1 1 1 1
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
cujo valor ´e
27
× 1 + 26
× 1 + 25
× 1 + 24
× 1 + 23
× 1 + 22
× 1 + 21
× 1 + 20
× 1 = 255 = 28
− 1
Em geral, com n bits podemos representar n´umeros inteiros positivos de 0 a 2n − 1.
Proposi¸c˜ao 3 O maior inteiro positivo que se consegue representar na base b com n d´ıgitos
´e bn − 1.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 16
Prova: Suponhamos que A ´e representado com n d´ıgitos na base b por an−1an−2 . . . a1a0
com ai ∈ {0, . . . , b − 1}. Ent˜ao,
A = an−1bn−1
+ an−2bn−2
. . . a1b1
+ a0b0
=
n−1
i=0
aibi
Ora,
n−1
i=0
aibi
≤
n−1
i=0
(b − 1)bi
= (b − 1)
n−1
i=0
bi
= (b − 1)
b0 − b × bn−1
1 − b
(soma de termos de progress˜ao geom´etrica)
= (b − 1)
1 − bn
1 − b
= bn
− 1
Observa¸c˜ao: n−1
i=0 ui ´e uma nota¸c˜ao abreviada para u0 + u1 + · · · + un−1, podendo-se ler
“somat´orio para i desde 0 at´e n − 1 de ui”.
Exerc´ıcio 2.1.11 Qual ´e o n´umero m´ınimo de bits necess´ario para representar 1125? Qual
o valor m´aximo que pode ser representado com esse n´umero de bits?
Normalmente o n´umero de bits usados s˜ao 8, 16, 32 ou 64. Com 8 bits podemos representar
inteiros entre 0 e 255, com 16 bits entre 0 e 65535, com 32 bits entre 0 a 4294967295, etc.
2.1.4 Representa¸c˜ao de n´umeros negativos
Para representar n´umeros inteiros positivos e negativos numa base b e com um n´umero fixo
de d´ıgitos ´e necess´ario codificar o sinal e encontrar um processo eficiente de determinar se
um n´umero ´e positivo ou negativo. Normalmente ´e reservado um d´ıgito para indicar o sinal.
Por exemplo, em n d´ıgitos, sendo A = an−1an−2 . . . a1a0(b), se an−1 = 0 ent˜ao A ´e positivo,
se an−1 = b − 1 o n´umero ´e negativo.
Vamos considerar trˆes formas introduzidas para representar n´umeros inteiros positivos e
negativos e que obedecem `a condi¸c˜ao de sinal apresentada. Vamos supor que a base ´e 2 e que
o n´umero de d´ıgitos ´e n, embora os resultados possam ser generalizados para qualquer base b.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 17
Representa¸c˜ao com bit de sinal. Reserva-se o bit mais `a esquerda para o sinal e os
restantes para o m´odulo do n´umero.
n bits
n−1 n−2 . . . . . . . . 0
sinal m´odulo
O bit de sinal ´e 0 para os positivos e ´e 1 para os negativos. Assim, um n´umero positivo
´e da forma A = 0an−2 . . . a1a0 e um negativo ´e da forma A = 1an−2 . . . a1a0. Com n bits
podemos representar n´umeros positivos de 0 a 2n−1 − 1 e negativos −(2n−1 − 1) a 0.
As representa¸c˜oes de dois n´umeros com o mesmo m´odulo diferem apenas no bit de sinal.
Se n = 3 temos o quadro seguinte:
Valor 0 1 2 3 −0 −1 −2 −3
Representa¸c˜ao com bit de sinal 000 001 010 011 100 101 110 111
Podemos observar que zero tem duas representa¸c˜oes: +0 e −0. Para efectuar adi¸c˜oes
de n´umeros com sinais diferentes ´e necess´ario primeiro determinar qual ´e o maior e qual o
sinal do resultado. O mesmo problema surge para a subtrac¸c˜ao, a qual pode ser tratada como
a adi¸c˜ao associando o sinal negativo ao subtraendo, x − y = x + (−y).
Representa¸c˜ao em Complemento para 1. A utiliza¸c˜ao desta representa¸c˜ao para inteiros
apresenta o mesmo problema da anterior, isto ´e, zero ter´a duas representa¸c˜oes +0 e −0. Para
uma representa¸c˜ao em n bits, chama-se complemento para 1 de A ao valor (2n − 1) − A.
O bit mais signficativo d´a indica¸c˜ao sobre o sinal do n´umero (se for 1, o n´umero ´e negativo).
O n´umero negativo −x ser´a representado por (2n − 1) − x. Por exemplo, para n = 3, temos
o quadro seguinte:
Valor +0 +1 +2 +3 −3 −2 −1 −0
Complemento para 1 000 001 010 011 100 101 110 111
Estas representa¸c˜oes podem ser obtidas por troca de 1’s por 0’s e 0’s por 1’s na repre-
senta¸c˜ao de x em n bits, o que resulta de 2n − 1 ser representado por n 1’s. Por exemplo, -14
´e representado em complemento para 1 em 8 bits por:
1 1 1 1 1 1 1 1
− 0 0 0 0 1 1 1 0
1 1 1 1 0 0 0 1
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 18
Representa¸c˜ao em Complemento para 2. Neste caso, zero ter´a uma s´o representa¸c˜ao:
Exactamente metade dos n´umeros representados s˜ao n˜ao negativos e a outra metade n´umeros
negativos.
De 0 a 2n−1 −1 encontram-se os n´umeros n˜ao negativos e de 2n−1 a 2n −1 n´umeros
negativos.
Para os positivos a representa¸c˜ao coincide com a representa¸c˜ao anterior. Os n´umeros nega-
tivos s˜ao complementos para a base. Por defini¸c˜ao, o complemento para 2 de A numa
representa¸c˜ao de n bits ´e o inteiro 2n − A.
Exemplo 7 Para n = 3 ent˜ao -1 ´e representado por 111 pois 23 − 1 = 7. Se n = 8, o
inteiro -1 ´e representado por 11111111 em complemento para 2. Nnuma representa¸c˜ao em 8
bits usando complemento para 2 o inteiro −3 ´e o bin´ario correspondente a 28 − 3, ou seja
253 = 11111101.
Em resumo, temos o quadro seguinte para n = 3:
Valor 0 +1 +2 +3 −4 −3 −2 −1
Complemento para 2 000 001 010 011 100 101 110 111
Usando a defini¸c˜ao de complemento para 2, pode-se concluir que 2n−1 representa −2n−1
pois 2n − 2n−1 = 2n−1. Por outro lado, 2n − 1 representa −1.
Proposi¸c˜ao 4 No sistema de representa¸c˜ao com n bits e complemento para 2 os valores
poss´ıveis dos inteiros represent´aveis variam de −2n−1 a 2n−1 − 1. De 0 a 2n−1 − 1 tem-se
n´umeros n˜ao negativos e de 2n−1 a 2n − 1 n´umeros negativos.
Para al´em de s´o haver um zero, neste caso todos os negativos tˆem 1 como bit mais
significativo, o qual funciona assim como bit de sinal. As adi¸c˜oes podem ser efectuadas
sem analisar o sinal dos operandos e nas subtrac¸c˜oes basta calcular o complemento para 2 do
subtraendo e adicionar o valor resultante ao subtractivo, como se ver´a adiante.
Para determinar representa¸c˜ao em complemento para 2 dum n´umero ´e ´util observar
a sua rela¸c˜ao com a representa¸c˜ao em complemento para 1.
Como 2n − A = (2n − 1 − A) + 1 e 2n − 1 − A ´e a representa¸c˜ao em complemento para 1,
podemos obter a representa¸c˜ao em complemento para 2 complementando todos os d´ıgitos
de A (isto ´e trocando os uns com os zeros e os zeros com os uns) e adicionando depois uma
unidade.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.2. ADIC¸ ˜AO E SUBTRACC¸ ˜AO EM N BITS 19
Exemplo 8 Para determinar a representa¸c˜ao de -17 em complemento para 2 em 8 bits,
toma-se 00010001, troca-se 0’s por 1’s, obtendo 11101110, e soma-se 1, resultando 11101111.
Inversamente, se se pretender determinar o valor (em decimal) do inteiro que ´e dado em
complemento para 2 por A = an−1an−2 . . . a1a0, basta considerar que a parcela an−12n−1 ´e
negativa. Por exemplo,
110(2) = 1 × (−22
) + 1 × 21
+ 0 × 20
= −4 + 2 + 0 = −2(10)
Exerc´ıcio 2.1.12 Represente em complemento para 2 e com 8 bits os n´umeros inteiros se-
guintes:
(i) 25, -25, 41, 56, 19, -31, -87;
(ii) a soma dos anteriores e verifique se o resultado de somar as representa¸c˜oes est´a correcto.
Exerc´ıcio 2.1.13 Suponha que a representa¸c˜ao em complemento para dois com 4 d´ıgitos de
um inteiro ´e 1101. Como ´e a representa¸c˜ao com:
(i) 6 d´ıgitos
(ii) 8 d´ıgitos
(iii) n d´ıgitos, com n ≥ 4.
Exerc´ıcio 2.1.14 Suponha agora que, em 4 d´ıgitos, a representa¸c˜ao em complemento para
dois ´e 0101. Como responderia `as al´ıneas anteriores? Em geral, dado um inteiro x represen-
tado em n d´ıgitos como procederia para obter a sua representa¸c˜ao com mais d´ıgitos?
2.2 Adi¸c˜ao e Subtrac¸c˜ao em n Bits
2.2.1 Adi¸c˜ao e subtrac¸c˜ao bin´aria de inteiros n˜ao negativos
• Adi¸c˜ao: Segue o algoritmo habitual de adi¸c˜ao bin´aria; se se tiver uma representa¸c˜ao de
m bits e a soma for superior a 2m − 1 (o maior inteiro positivo com m bits) diz-se que
h´a transporte (carry); Por exemplo: a soma em 8-bits dos inteiros positivos 10010000
e 11111101 ´e 10001101, o que est´a errado (tem transporte 1).
• Subtrac¸c˜ao: Segue algoritmo habitual de subtrac¸c˜ao bin´aria; se o valor da diferen¸ca for
inferior a zero, diz-se que h´a transporte (borrow); Por exemplo: a diferen¸ca em 8-bits
10010000 − 11111101 = 10010011 o que est´a errado (tem transporte 1).
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.2. ADIC¸ ˜AO E SUBTRACC¸ ˜AO EM N BITS 20
2.2.2 Adi¸c˜ao de inteiros em complemento para 2
Se os inteiros s˜ao n˜ao negativos, a soma ´e calculada pelo algoritmo habitual. Se a repre-
senta¸c˜ao tiver m bits e a soma for superior a 2m−1 − 1 (o maior inteiro positivo com m bits
num sistema de complemento para 2) diz-se que h´a overflow, sendo indica¸c˜ao de que o valor
obtido est´a errado.
Por exemplo: a soma em 8-bits e complemento para 2 de 01111111 com 00000001 ´e
10000000 ou seja, a soma de +127 com +1 ´e −128(!). Neste caso, h´a overflow.
Se os inteiros s˜ao ambos negativos (em complemento para 2) a soma ´e calculada pelo
algoritmo habitual ”desprezando-se”o transporte. Se se usa uma representa¸c˜ao em m bits,
o ”desprezar”o transporte corresponde a subtrair ao resultado obtido 2m. Basta notar que
quando se efectua (−x) + (−y) se pretende obter o complemento para 2 de x + y, isto ´e
2m − (x + y). A rela¸c˜ao desse n´umero com os complementos para 2 de x e y ´e 2m − (x + y) =
(2m − x) + (2m − y) − 2m. Ou seja, para obter a representa¸c˜ao em complemento para 2 de
(−x) + (−y) adicionam-se as representa¸c˜oes de (−x) e (−y) e subtrai-se 2m.
Se a representa¸c˜ao tiver m bits e a soma for inferior a −2m−1 (o menor inteiro negativo
com m bits num sistema de complemento para 2) diz-se que h´a underflow, sendo indica¸c˜ao
de que o valor obtido est´a errado.
Por exemplo: a soma em 8-bits e complemento para 2 de 10000000 com 11111111 seria
01111111 ou seja, −128 + (−1) = +127 (!). Neste caso, h´a underflow.
Analogamente, a soma dum inteiro positivo com um inteiro negativo ´e o bin´ario correspon-
dente `a adi¸c˜ao das representa¸c˜oes dos operandos, ”desprezando-se”o transporte se o houver.
N˜ao haver´a overflow nem underflow.
2.2.3 Subtrac¸c˜ao de inteiros em complemento para 2
A subtrac¸c˜ao bin´aria de inteiros representados em complemento para 2 pode-se reduzir `a
adi¸c˜ao de inteiros.
Exemplos
(-x)-(-y) = (-x)+y 10010000-11111101=10010000+00000011=10010011
(-x)-y=(-x)+(-y) 10010000-00000011=10010000+11111101=10001101
y-(-x)=y+x 00000011-10010000=00000011+ 01110000=01110011
y-x=y+(-x) 00000011-00010000=00000011+11110000=11110011
Exerc´ıcio 2.2.1 Quais das seguintes somas est˜ao correctas (se truncadas a 8 bits) caso as
representa¸c˜oes indicadas sejam representa¸c˜oes em complemento para 2 e caso sejam repre-
senta¸c˜oes s´o para inteiros n˜ao negativos?
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.3. REPRESENTAC¸ ˜AO EM V´IRGULA FIXA 21
negativos negativo e positivo positivos
10010000
+ 11111101
1 10001101
00010000
+ 11111111
1 00001111
00010000
+ 00111101
0 01001101
positivos negativos
01111010
+ 01110001
0 11101011 < 0
10000110
+ 10001111
1 00010101 > 0
overflow underflow
2.3 Representa¸c˜ao em V´ırgula Fixa
A representa¸c˜ao posicional de inteiros pode ser generalizada para representar n´umeros racio-
nais considerando-se potˆencias negativas da base. Por exemplo, na base 10:
344.45 = 3 × 102
+ 4 × 101
+ 4 × 100
+ 4 × 10−1
+ 5 × 10−2
Podemos ainda escrever:
344.45 = 34445. × 10−2
= (3 × 104
+ 4 × 103
+ 4 × 102
+ 4 × 101
+ 5 × 100
) × 10−2
Se se fixar a posi¸c˜ao da v´ırgula (neste caso o factor ´e 10−2), o n´umero pode ser tratado
como um inteiro. Assim as opera¸c˜oes com n´umeros racionais podem ser feitas internamente
como opera¸c˜oes com inteiros, desde que os factores de ajuste sejam guardados para que o
resultado final seja correctamente calculado.
Note-se em particular que as representa¸c˜oes de inteiros em computadores estudadas anteri-
ormente s˜ao representa¸c˜oes em v´ırgula fixa, com a v´ırgula `a direita do bit menos significativo.
No caso geral, os ajustes da posi¸c˜ao da v´ırgula e o seu armazenamento ficar˜ao a cargo do
programador.
Contudo, actualmente, a representa¸c˜ao em computadores dos n´umeros racionais ´e feita,
geralmente, em v´ırgula flutuante.
2.4 Representa¸c˜ao em V´ırgula Flutuante
A representa¸c˜ao dum n´umero racional em v´ırgula flutuante, contrariamente `a representa¸c˜ao
em v´ırgula fixa, ´e feita atrav´es de um par de inteiros que representam respectivamente a
mantissa m e o expoente e de forma que para uma determinada base b, o seu valor ´e:
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
2.4. REPRESENTAC¸ ˜AO EM V´IRGULA FLUTUANTE 22
F = m × be
Por exemplo, 673 × 1014.
A designa¸c˜ao v´ırgula flutuante resulta do facto de que a posi¸c˜ao da v´ırgula depender do
expoente e portanto n˜ao ser fixada previamente.
A nota¸c˜ao mais usada para v´ırgula flutuante ´e a do IEEE (Institute of Electrical and
Electronics Engineers). A base ´e a bin´aria. Em precis˜ao simples cada n´umero ´e representado
com 32 bits:
S E (8 bits) M (23 bits)
O sinal da mantissa ´e representado pelo bit S, que por quest˜oes de eficiˆencia ´e separado
da representa¸c˜ao do m´odulo da mantissa o qual ´e constitu´ıdo pelos 23 bits mais `a direita. O
valor do m´odulo da mantissa ´e normalmente dado por 1.M(2), isto ´e, 1 mais o valor de M
considerado como n´umero racional bin´ario, com a v´ırgula `a esquerda do bit mais significativo.
Os oito bits restantes s˜ao interpretados como um inteiro positivo E e representam o expoente
cujo valor ´e E − 127. O valor representado ´e
F = (−1)S
(2E−127
)(1.M)(2)
excepto se E for 0000000 ent˜ao F = (−1)S(2−127)(.M(2)) e se M tamb´em ´e zero ent˜ao F = 0.
A sequˆencia 1 10000111 10100000000000000000000 representaria um n´umero negativo,
dado que S = 1. Como 10000111(2) = 135(10), o expoente ´e 135 − 127 = 8; e o m´odulo da
mantissa ´e
1 + 0.101(2) = 1 + 1 × 2−1
+ 1 × 2−3
= 1 + (5/8) = 1 + 0.625 = 1.625
O valor representado ´e −28 × 1.625 = −416.
Existem outras representa¸c˜oes em v´ırgula flutuante IEEE, como a precis˜ao dupla em que
s˜ao usados 64 bits e a qu´adrupla em que s˜ao usados 128 bits.
Exerc´ıcio 2.4.1 Determine qual o maior n´umero que ´e represent´avel em precis˜ao simples,
segunda a norma do IEEE.
Exerc´ıcio 2.4.2 Indique o valor das seguintes representa¸c˜oes em precis˜ao simples segunda a
norma do IEEE:
(i) 0 01110101 01010100000000000000000000
(ii) 1 00101010 11100000000000000000000000
Exerc´ıcio 2.4.3 Exprima o mais exactamente poss´ıvel os seguintes n´umeros em precis˜ao
simples IEEE: 2.5, .0005, 2−40 e 256
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
Cap´ıtulo 3
Algumas No¸c˜oes de Divisibilidade
Por defini¸c˜ao, um inteiro a ´e divis´ıvel por um inteiro b se e s´o se a = bq para algum inteiro q.
Nesse caso, escreve-se b | a, lendo-se b divide a. Tamb´em se diz que b ´e divisor de a e
que a ´e m´ultiplo de b. O inteiro q ´e o quociente da divis˜ao inteira de a por b. Atendendo
`a defini¸c˜ao de divisor, se a = bq ent˜ao tanto b como q s˜ao divisores de a. Por exemplo, os
divisores positivos de 30 s˜ao 1, 2, 3, 5, 6, 10, 15 e 30, encontrando-se emparelhados.
1 30
2 153 10
5 6
Na procura de divisores de a, para a positivo, n˜ao ´e necess´ario ultrapassar
√
a, pois qualquer
divisor que seja superior a
√
a ter´a que emparelhar com algum divisor que ´e inferior a
√
a.
3.1 Bases de Numera¸c˜ao e Crit´erios de Divisibilidade
´E conhecido que, um inteiro positivo representado na base 10 ´e divis´ıvel por 100 se e s´o se a
sua representa¸c˜ao terminar por 00 (pois os restos da divis˜ao por 10 e 102 s˜ao 0). ´E divis´ıvel
por 1000 sse tal representa¸c˜ao terminar em 000. De modo an´alogo se pode concluir que um
inteiro (positivo) representado na base 2 ´e divis´ıvel por 4 (isto ´e, por 22) se a sua representa¸c˜ao
em bin´ario terminar por 00 e ´e divis´ıvel por 8 (isto ´e, por 23) sse terminar em 000.
Proposi¸c˜ao 5 Um inteiro (positivo) x representado numa certa base b ´e divis´ıvel por bk,
sendo k inteiro positivo fixo, se e s´o a representa¸c˜ao de x na base b terminar por k zeros.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.1. BASES DE NUMERAC¸ ˜AO E CRIT´ERIOS DE DIVISIBILIDADE 24
Ideia da prova: Para que x seja divis´ıvel por bk ent˜ao ter´a que ser divis´ıvel tamb´em por
b1, b2, . . . , bk−1, o que quer dizer que se efectuar k divis˜oes sucessivas por b ter´a k restos 0.
Ou seja, x = b(x/b) + 0. Depois, k > 1, tamb´em (x/b) = b((x/b)/b) + 0, . . .
Analisando a defini¸c˜ao de representa¸c˜ao base 10, podemos justificar o seguinte crit´erio de
divisibilidade por 9.
Proposi¸c˜ao 6 Um inteiro ´e divis´ıvel por 9 sse a soma dos d´ıgitos da sua representa¸c˜ao na
base 10 for divis´ıvel por 9.
Prova: Seja x um inteiro (positivo) qualquer e suponhamos que a sua representa¸c˜ao
base 10 ´e anan−1 . . . a1a0. Isto quer dizer que,
x = an × 10n
+ an−1 × 10n−1
+ · · · + a1 × 10 + a0
Como
10 = 9 + 1 um m´ultiplo de 9 mais uma unidade
100 = 99 + 1 um m´ultiplo de 9 mais uma unidade
1000 = 999 + 1 um m´ultiplo de 9 mais uma unidade
...
10n = 99 . . . 9
9 repetido n vezes
+1 um m´ultiplo de 9 mais uma unidade
ent˜ao x = (˙9 + 1) × an + (˙9 + 1) × an−1 + · · · + (˙9 + 1) × a1 + a0, ou seja
x = ˙9 + (an + an−1 + · · · + a1 + a0)
em que ˙9 ´e abreviatura de “um m´ultiplo de 9” (nesta igualdade, cada ocorrˆencia de ˙9 designa
um m´ultiplo diferente). Na “simplifica¸c˜ao” da igualdade, us´amos tamb´em o facto da soma
de m´ultiplos de 9 ser um m´ultiplo de 9 e do produto dum n´umero qualquer por um m´ultiplo
de 9 ser um m´ultiplo de 9. Observando que x = ˙9 + (an + an−1 + · · · + a1 + a0), concluimos
que x ´e m´ultiplo de ˙9 se e s´o se an + an−1 + · · · + a1 + a0 for m´ultiplo de ˙9.
O exerc´ıcio seguinte pode ser resolvido por aplica¸c˜ao dum racioc´ınio an´alogo, agora obser-
vando que 10 = ˙11−1, 100 = ˙11+1, 1000 = ˙11−1, 1000 = 1000×10 = ( ˙11−1)( ˙11−1) = ˙11+1,
10000 = ( ˙11 + 1) × 10 = ˙11 − 1, . . .
Exerc´ıcio 3.1.1 Mostre que um inteiro ´e divis´ıvel por 11 sse a soma dos d´ıgitos de ordem
par da sua representa¸c˜ao na base 10 for igual `a soma dos d´ıgitos de ordem ´ımpar.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.2. NOC¸ ˜AO DE DIVISOR E DE M ´ULTIPLO 25
Exerc´ıcio 3.1.2 Mostre que um inteiro
(i) ´e divis´ıvel por 5 sse a sua representa¸c˜ao decimal terminar em 0 ou 5;
(ii) ´e divis´ıvel por 3 sse a soma dos d´ıgitos da sua representa¸c˜ao decimal for divis´ıvel por 3.
(iii) ´e divis´ıvel por 2 sse o d´ıgito menos significativo da sua representa¸c˜ao decimal for par.
3.2 No¸c˜ao de Divisor e de M´ultiplo
O conjunto1 dos divisores dum inteiro a ´e constitu´ıdo por todos os inteiros positivos tais que
se b | a e os seus sim´etricos.
{divisores de a} = {b : b ∈ Z e b divide a}
Frequentemente, o termo divisor ´e usado para referir divisor positivo.
O conjunto dos m´ultiplos de b ´e constitu´ıdo pelos inteiros da forma bz para z inteiro, ou
seja
{m´ultiplos de b} = {bz : z ∈ Z}.
Para mostrar formalmente o resultado seguinte basta usar a defini¸c˜ao de m´ultiplo e de
divisor que acab´amos de apresentar. Este resultado foi utilizado na sec¸c˜ao anterior, devendo
ser bem conhecido.
Proposi¸c˜ao 7 A soma, a diferen¸ca e o produto de dois m´ultiplos de b ´e um m´ultiplo de b.
O produto dum m´ultiplo de b por qualquer inteiro ´e um m´ultiplo de b.
Prova: Sejam m1 e m2 m´ultiplos de b. Ent˜ao existem inteiros z1 e z2 tais que m1 = bz1
e m2 = bz2. Logo, m1 + m2 = bz1 + bz2 = b(z1 + z2) e como a soma de inteiros ´e um inteiro,
conclui-se que z1 +z2 ∈ Z, pelo que m1 +m2 ´e da forma bz, para algum z ∈ Z (concretamente,
para z = z1 + z2). Portanto, a soma de m´ultiplos de b ´e m´ultiplo de b.
Para mostrar que a diferen¸ca de dois m´ultiplos de b (isto ´e, m1 − m2) ´e m´ultiplo de b
procede-se analogamente.
Para mostrar que m1m2 ´e m´ultiplo de b, isto ´e, que o produto de dois m´ultiplos de b ´e
m´ultiplo de b, observe-se que m1m2 = (bz1)(bz2) = b(bz1z2) e como bz1z2 ∈ Z, conclui-se que
m1m2 ´e produto de b por um inteiro, ou seja, ´e m´ultiplo de b.
Do mesmo modo, para concluir que o produto dum m´ultiplo de b (por exemplo, m1) por
um qualquer inteiro x ´e m´ultiplo de b, basta notar que m1x = (bz1)x = b(z1x) e z1x ∈ Z.
1 ´E usual representar “o conjunto dos x’s tais que x satisfaz condi¸c˜ao. . . ” por {x | x satisfaz condi¸c˜ao . . . }.
Neste cap´ıtulo, usaremos a nota¸c˜ao alternativa {x : x satisfaz condi¸c˜ao . . . }, para evitar usar | com duplo
significado, reservando | para “divide”.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.3. FACTORIZAC¸ ˜AO EM PRIMOS 26
Exerc´ıcio 3.2.1 Mostrar que quaisquer que sejam x, y e z inteiros, se x dividir y e dividir
y + z ent˜ao tamb´em divide z.
3.3 Factoriza¸c˜ao em Primos
Um n´umero p ´e primo se e s´o se tem exactamente quatro divisores (inteiros), nomeadamente,
p, −p, 1 e −1. Assim, um n´umero ´e primo se e s´o se tem exactamente dois divisores positivos.
Proposi¸c˜ao 8 Qualquer inteiro maior do que 1 ´e ou primo ou produto de primos.
Prova: Pela defini¸c˜ao de primo, tem-se 2 ´e primo.
Seja x ∈ N tal que x > 2. Suponhamos que j´a mostr´amos que todo y ∈ N tal que 2 ≤ y < x
´e ou primo ou produto de primos. Vamos mostrar que ent˜ao tamb´em podemos concluir que
x ´e primo ou produto de primos. De facto, se x n˜ao for primo, existem x1, x2 ∈ N  {0, 1}
tais que x = x1x2. Como 2 ≤ x1 < x e 2 ≤ x2 < x, sabemos j´a que x1 ´e primo ou produto de
primos e x2 ´e primo ou produto de primos.
Analisando os quatro casos (a) x1 e x2 primos, (b) x1 e x2 produtos de primos, (c) x1
primo e x2 produto de primos, e (d) x1 produto de primos e x2 primo, concluimos que se
x = x1x2 ent˜ao x pode escrever-se como produto de primos. Logo, se x n˜ao ´e primo ent˜ao x
´e um produto de primos, ou seja, x ´e primo ou produto de primos.
A t´ecnica utilizada na prova anterior designa-se por indu¸c˜ao matem´atica. Como
hip´otese de indu¸c˜ao supusemos que j´a se tinha mostrado que todo y ∈ N tal que 2 ≤ y < x ou
´e primo ou ´e produto de primos. Como x est´a fixo (e ´e finito), essa prova pode ser realmente
reconstru´ıda. Por exemplo, se x fosse 24, estariamos a assumir que j´a tinhamos verificado que
2, 3, 5, 7, 11, 13, 17, 19 e 23 s˜ao primos e que 4 = 2 × 2, 6 = 2 × 3, 8 = 2 × 2 × 2, 9 = 3 × 3,
10 = 2 × 5, 12 = 2 × 2 × 3, 14 = 2 × 7, 15 = 3 × 5, 16 = 2 × 2 × 2 × 2, 18 = 2 × 3 × 3,
20 = 2 × 2 × 5, 21 = 3 × 7 e 22 = 2 × 11. Como 24 n˜ao ´e primo porque, por exemplo,
24 = 4 × 6, ent˜ao podemos concluir que ´e produto de primos, por substitui¸c˜ao de 4 e 6 (que
correspondem a x1 e x2) pelas suas factoriza¸c˜oes em primos: 24 = (2 × 2) × (2 × 3).
Usualmente, escreve-se 24 = 23 × 3, sendo esta a factoriza¸c˜ao de 24 primos. Em geral,
para qualquer n´umero natural n n˜ao inferior a 2, existem primos p1, . . . pk ´unicos e tal que n
se pode factorizar de forma ´unica como pα1
1 × · · · × pαk
k sendo αi = 0 e pi < pj se i < j, para
todo i ≤ k e todo j ≤ k. Por exemplo, 37268 = 22 × 71 × 113 e 500 = 22 × 53.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.3. FACTORIZAC¸ ˜AO EM PRIMOS 27
Corol´ario 8.1 Seja x um inteiro tal que x ≥ 2 e x n˜ao ´e primo. A factoriza¸c˜ao de x em
primos ´e ´unica, a menos de reordena¸c˜ao dos factores.
Ideia da prova: An´aloga `a anterior, supondo como hip´otese j´a se provou que todo
y ∈ N tal que 2 ≤ y < x ou ´e primo ou se escreve de forma ´unica como produto de primos (a
menos de reordena¸c˜ao de factores).
Corol´ario 8.2 Qualquer inteiro maior do que 1 que n˜ao ´e primo ´e divis´ıvel por algum primo.
Prova: Seja x um inteiro qualquer maior do que 1. Se x n˜ao ´e primo ent˜ao x ´e produto
de primos. Consequentemente, algum primo ´e seu divisor.
Proposi¸c˜ao 9 O conjunto dos inteiros n˜ao negativos que s˜ao primos ´e infinito.
Prova: Suponhamos que s´o existiam n primos, sendo n um certo inteiro fixo. Ou seja,
suponhamos que o conjunto dos primos era finito e que tinha exactamente n elementos, os
quais vamos denotar por p1, p2, . . . , pn. Ent˜ao, o inteiro positivo
1 +
n
i=1
pi
n˜ao seria primo, j´a que ´e maior do que qualquer um dos primos p1, p2, . . . , pn.
Mas se 1 + p1p2 . . . pn n˜ao ´e primo, ent˜ao algum dos primos o divide (ou seja, ´e m´ultiplo
de algum dos primos). Suponhamos que pk divide 1 + p1p2 · · · pn, sendo k um inteiro fixo,
1 ≤ k ≤ n. Como pk divide n
i=1 pi isto ´e, pk divide o produto 1+p1p2 · · · pn, pode-se concluir
que se pk dividir 1 + p1p2 · · · pn ent˜ao pk divide 1. Mas nenhum primo divide 1. O absurdo
resultou de se ter suposto que o conjunto dos primos era finito. Logo, o conjunto dos primos
´e infinito.
3.3.1 Determina¸c˜ao de primos: crivo de Erast´otenes
Descreve-se a seguir um algoritmo para determina¸c˜ao de todos os primos n˜ao superiores a
um n´umero n dado. Tal algoritmo ´e conhecido como m´etodo do crivo. Parte-se duma tabela
contendo todos os n´umeros n˜ao superiores n. O algoritmo resume-se a seleccionar o menor
inteiro na tabela (ainda n˜ao seleccionado) e apagar todos os seus m´ultiplos at´e todos os valores
estarem ou seleccionados ou apagados.
2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
2 3 5 7 9
11 13 15 17 19
21 23 25 27 29
31 33 35 37 39
41 43 45 47 49
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.4. M´AXIMO DIVISOR COMUM 28
2 3 5 7 9
11 13 15 17 19
21 23 25 27 29
31 33 35 37 39
41 43 45 47 49
2 3 5 7
11 13 17 19
23 25 29
31 35 37
41 43 47 49
2 3 5 7
11 13 17 19
23 29
31 37
41 43 47 49
2 3 5 7
11 13 17 19
23 29
31 37
41 43 47
O processo continua . . . Os valores que ficarem na tabela s˜ao os primos, neste caso, n˜ao
superiores a 50 (o valor de n neste exemplo).
3.3.2 C´alculo de divisores por an´alise da factoriza¸c˜ao em primos
A partir da factoriza¸c˜ao dum n´umero em primos ´e poss´ıvel determinar todos os seus divisores.
Por exemplo, os divisores de 30, que ´e dado por
30 = 21
× 31
× 51
s˜ao:
20 × 30 × 50 = 1 21 × 30 × 50 = 2 20 × 31 × 50 = 3
20 × 30 × 51 = 5 21 × 31 × 50 = 6 21 × 30 × 51 = 10
20 × 31 × 51 = 15 21 × 31 × 51 = 30
Em geral, se pα1
1 · · · pαk
k for a decomposi¸c˜ao de x em primos ent˜ao o conjunto dos divisores
positivos de x ´e
{pβ1
1 · · · pβk
k : 0 ≤ βi ≤ αi para i = 1, . . . , k}
concluindo-se que o n´umero de divisores de pα1
1 · · · pαk
k ´e k
i=1(αi + 1).
3.4 M´aximo Divisor Comum
Sabemos que 1 ´e divisor de qualquer inteiro e que o maior divisor de qualquer inteiro positivo x
´e o pr´oprio x. Dados inteiros positivos a e b, podemos falar do seu m´aximo divisor comum,
o qual representamos por mdc(a, b). O m´aximo divisor comum ´e o maior dos divisores comuns:
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.4. M´AXIMO DIVISOR COMUM 29
d ´e mdc(a, b) sse d | a, d | b e d | d qualquer que seja d tal que d | a e d | b. Por defini¸c˜ao de
mdc(a, b), cada divisor comum de a e b ´e divisor de mdc(a, b).
Por exemplo, por an´alise da decomposi¸c˜ao de 30 e 500 em primos, 30 = 2 × 3 × 5 e
500 = 22 × 53, podemos concluir que mdc(30, 500) = 10.
Dois inteiros a e b chamam-se primos entre si se e s´o se mdc(a, b) = 1.
Proposi¸c˜ao 10 Os inteiros a/mdc(a, b) e b/mdc(a, b) s˜ao primos entre si.
Prova: Queremos mostrar que mdc( a
mdc(a,b) , b
mdc(a,b) ) = 1. Para isso vamos provar que
se mdc( a
mdc(a,b) , b
mdc(a,b) ) = d ent˜ao mdc(a, b)d tamb´em divide a e b. Podemos depois concluir
que necessariamente d = 1 pois se d fosse maior do que 1 ent˜ao mdc(a, b)d > mdc(a, b),
mdc(a, b)d seria um divisor comum a a e b, maior do que o m´aximo divisor comum, o que,
por defini¸c˜ao de mdc(a, b) ´e imposs´ıvel. Para completar os detalhes da prova, resta mostrar
que mdc(a, b)d ´e divisor de a e de b se d | a
mdc(a,b) e d | b
mdc(a,b) . De facto, basta notar que:
a = mdc(a, b)
a
mdc(a, b)
= mdc(a, b)d
a
mdc(a, b)d
e
b = mdc(a, b)
b
mdc(a, b)
= mdc(a, b)d
b
mdc(a, b)d
.
Tem-se mdc(320 ×57 ×1127 ×312, 24 ×36 ×525) = 36 ×57, porque o m´aximo divisor comum
´e dado por
2min(0,4)
× 3min(20,6)
× 5min(7,25)
× 11min(27,0)
× 31min(2,0)
ou seja, por 203657110310. Este m´etodo pode ser sempre aplicado se forem conhecidas as
factoriza¸c˜oes dos n´umeros a e b. Quando n˜ao se conhecem, o algoritmo de Euclides
permite calcular mdc(a, b) eficientemente.
3.4.1 C´alculo do m´aximo divisor comum pelo algoritmo de Euclides
A correc¸c˜ao do algoritmo de Euclides para c´alculo do mdc(a, b) decorre do seguinte resultado.
Lema 1 Sejam a e b inteiros positivos tais que a < b e seja r o resto da divis˜ao de a por b.
Ent˜ao, mdc(a, b) = mdc(b, r).
Prova: Represente-se por d o m´aximo divisor comum de a e b. Por defini¸c˜ao de divis˜ao
inteira, r ´e o resto da divis˜ao de a por b sse 0 ≤ r < b e a = bq + r para algum q ∈ Z. Por
outro lado, por defini¸c˜ao de m´aximo divisor comum, d|a e d|b. Portanto, d|(a − bq). Ou seja,
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.4. M´AXIMO DIVISOR COMUM 30
d|r. Logo, d ´e um divisor comum de b e r. Seja d um outro divisor comum de b e de r.
Resta-nos mostrar que d ter´a que dividir d para poder concluir que d ´e mdc(b, r). Para isso,
basta notar que se d |b e d |r ent˜ao d |(bq + r) e portanto d |a. Logo, d ´e um divisor comum
a a e b, e portanto d |mdc(a, b), isto ´e, d |d.
Algoritmo de Euclides para determina¸c˜ao de mdc(a, b). Sendo a e b inteiros positivos,
podemos definir mdc(a, b) recursivamente por
mdc(a, 0) = a se a > 0
mdc(a, b) = mdc(b, a%b) se a > b > 0
mdc(a, b) = mdc(b, a) se a < b
em que a%b denota o resto da divis˜ao de a por b.
Por exemplo, mdc(30, 500) = mdc(500, 30) = mdc(30, 500%30) = mdc(30, 20) = mdc(20, 10) =
mdc(10, 0) = 10.
500 30
20 16
30 20
10 1
20 10
0 2
Observe-se que mdc(500, 30) = 17 × 30 − 1 × 500 j´a que
10 = 30 − 1 × 20 = 30 − (500 − 16 × 30) = 17 × 30 − 1 × 500
ou seja, mdc(500, 30) pode-se escrever na forma 500x + 30y para x, y ∈ Z apropriados.
Lema 2 Quaisquer que sejam a, b ∈ Z+, existem inteiros x e y tais que ax + by = mdc(a, b),
ou seja, mdc(a, b) ´e combina¸c˜ao linear inteira de a e b.
Para escrever mdc(100, 17) (isto ´e, 1) como combina¸c˜ao de 100 e 17, observe-se que:
100 17
15 5
17 15
2 1
15 2
1 7
2 1
0 2
Efectuando an´alise para tr´as, substituindo sucessivamente os restos de forma a conseguir
fazer aparecer 100 e 17 (a e b iniciais) obtem-se a combina¸c˜ao procurada: 1 = 15 − 7 × 2 =
15 − 7(17 − 1 × 15) = 8 × 15 − 7 × 17 = 8(100 − 5 × 17) − 7 × 17 = 8 × 100 − 47 × 17.
Proposi¸c˜ao 11 Sendo a, b e c constantes inteiras, a equa¸c˜ao ax + by = c com x, y ∈ Z, tem
solu¸c˜ao se e s´o se mdc(a, b) | c.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.5. M´INIMO M ´ULTIPLO COMUM 31
Prova: Como mdc(a, b) divide a e divide b, tamb´em divide ax + by quaisquer que sejam
x, y ∈ Z. Portanto, para que ax + by = c tenha solu¸c˜ao ´e necess´ario que mdc(a, b) divida c.
Por outro lado, usando o facto de mdc(a, b) se poder escrever como combina¸c˜ao inteira
de a e de b, temos mdc(a, b) = ama + bmb para ma e mb inteiros adequados. Se mdc(a, b) | c,
ent˜ao c = mdc(a, b) c
mdc(a,b) e c
mdc(a,b) ∈ Z. Multiplicando mdc(a, b) = ama + bmb por c
mdc(a,b)
obtem-se mdc(a, b) c
mdc(a,b) = a(ma
c
mdc(a,b) ) + b(mb
c
mdc(a,b) ). Assim, vemos que se tomarmos
x = ma
c
mdc(a,b) e y = mb
c
mdc(a,b) temos uma solu¸c˜ao inteira de ax + by = c.
Pode-se provar que (x, y) ∈ Z2 ´e solu¸c˜ao de ax + by = c sse x = ma
c
mdc(a,b) + k b
mdc(a,b) e
y = mb
c
mdc(a,b) − k b
mdc(a,b) , com k ∈ Z qualquer.
3.5 M´ınimo M´ultiplo Comum
Dados inteiros positivos a e b sabemos que ab ´e um m´ultiplo de a e de b, fazendo sentido
determinar o menor inteiro positivo que ´e m´ultiplo comum a a e b, ou seja o m´ınimo m´ultiplo
comum, mmc(a, b). Por defini¸c˜ao m ´e mmc(a, b) sse a | m, b | m e m | m para todo m tal
que a | m e b | m . Assim, mmc(a, b) ´e um divisor de todos os m´ultiplos comuns de a e b.
Exemplo 9 mmc(320571127312, 2436525) = 2max(0,4)3max(20,6)5max(7,25)11max(27,0)31max(2,0) =
243205251127312.
Como
a
mdc(a, b)
e
b
mdc(a, b)
s˜ao primos entre si, podemos mostrar a Proposi¸c˜ao 12.
Proposi¸c˜ao 12 Quaisquer que sejam a, b ∈ Z+, mmc(a, b) =
ab
mdc(a, b)
.
Prova:
ab = mdc(a, b)
a
mdc(a, b)
mdc(a, b)
b
mdc(a, b)
= mdc(a, b)
a
mdc(a, b)
b
mdc(a, b)
mmc(a,b)
mdc(a, b)
Para ver que mdc(a, b) a
mdc(a,b)
b
mdc(a,b) ´e mmc(a, b), notemos que ´e m´ultiplo de a e de b. Por
outro lado, para verificar que divide qualquer outro m´ultiplo m de a e de b, escrevamos
m = k1a e m = k2b para inteiros k1 e k2 apropriados. Ent˜ao, m = k1mdc(a, b) a
mdc(a,b) e m =
k2mdc(a, b) b
mdc(a,b) , pelo que k1
a
mdc(a,b) = k2
b
mdc(a,b) . Como b
mdc(a,b) e a
mdc(a,b) s˜ao primos entre
si, b
mdc(a,b) tem que dividir k1. Assim, k1 = b
mdc(a,b) k1 para algum k1 e consequentemente, m =
b
mdc(a,b) k1mdc(a, b) a
mdc(a,b) e portanto m ´e m´ultiplo de mdc(a, b) b
mdc(a,b)
a
mdc(a,b) . Conclui-se
que mdc(a, b) b
mdc(a,b)
a
mdc(a,b) ´e mmc(a, b).
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
3.6. CONGRUˆENCIAS 32
3.6 Congruˆencias
Dados b ∈ Z+ e x, y ∈ Z dizemos que x e y s˜ao congruentes m´odulo b se e s´o se x − y for
m´ultiplo de b, escrevendo x ≡ y (mod b). Tal ´e equivalente a dizer que x e y d˜ao o mesmo
resto quando divididos por b. De facto, se x = qxb + rx e y = qyb + ry com 0 ≤ rx < b e
0 ≤ ry < b, ent˜ao x − y = (qx − qy)b + (rx − ry) e portanto x − y ´e m´ultiplo de b se e s´o se
rx − ry o for. Mas, como 0 ≤ rx < b e 0 ≤ ry < b, podemos concluir que −b < rx − ry < b, e
consequentemente rx − ry ´e m´ultiplo de b se e s´o se for zero. Portanto, x ≡ y (mod b) sse os
restos da divis˜ao de x e y por b s˜ao iguais. (Escrevemos qx, qy e rx, ry em vez de q1, q2 e r1, r2
para indicar que esses quocientes e restos dependem de x e y respectivamente.)
As rela¸c˜oes de congruˆencias tˆem algumas propriedades interessantes (e importantes). Por
exemplo, a “congruˆencia m´odulo 2” decomp˜oe os inteiros em dois conjuntos:
{x : x ∈ Z, x ≡ 0 (mod 2)} = {2k : k ∈ Z} = {pares}
{x : x ∈ Z, x ≡ 1 (mod 2)} = {1 + 2k : k ∈ Z} = {´ımpares}
A rela¸c˜ao de “congruˆencia m´odulo b” (para b ∈ Z+) decomp˜oe os inteiros em b conjuntos
{x : x ∈ Z, x ≡ 0 (mod b)} e {x : x ∈ Z, x ≡ 1 (mod b)}, . . . , {x : x ∈ Z, x ≡ b − 1 (mod b)},
sendo cada um identificado por um dos b restos poss´ıveis.
Outra das propriedades interessantes da rela¸c˜ao de congruˆencia ´e ser preservada pelas
opera¸c˜oes de soma, subtrac¸c˜ao e produto, ou seja, se x1 ≡ y1 (mod b) e x2 ≡ y2 (mod b) ent˜ao
x1 ± x2 ≡ y1 ± y2 (mod b) e x1 × x2 ≡ y1 × y2 (mod b).
O exemplo seguinte ilustra uma das aplica¸c˜oes de congruˆencias.
Exemplo 10 Suponha que se quer resolver 5x + 3y = 1 para x, y ∈ Z. Como 5x + 3y = 1 ⇔
5x − 1 = 3(−y) podemos come¸car por resolver 5x ≡ 1 (mod 3). Tem-se 5x ≡ 1 (mod 3) ⇔
2x ≡ 1 (mod 3). Por outro lado, 2x ≡ 1 (mod 3) ⇔ (−1)x ≡ 1 (mod 3), ou seja x ≡ (−1) (mod 3),
isto ´e x ≡ 2 (mod 3). Assim, 5x ≡ 1 (mod 3) se e s´o se x = 2 + 3k para algum k ∈ Z.
Voltando `a equa¸c˜ao inicial, temos 5x + 3y = 1 ⇔ 5(2 + 3k) + 3y = 1 ⇔ y = −3 − 5k
concluindo-se que as solu¸c˜oes de 5x + 3y = 1 s˜ao os pontos (x, y) da forma x = 2 + 3k e
y = −3 − 5k, com k ∈ Z.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
Cap´ıtulo 4
Indu¸c˜ao Matem´atica
O m´etodo de demonstra¸c˜ao por indu¸c˜ao matem´atica (ou indu¸c˜ao finita) ser´a bastante usado
durante o curso pelo que ´e conveniente introduzi-lo (ou record´a-lo).
4.1 Princ´ıpio de Indu¸c˜ao Matem´atica
Imagine uma escada com uma infinidade de degraus. N˜ao ´e uma escada com um n´umero
enorme de degraus! Esta escada, tem sempre um degrau acima de qualquer outro que consi-
dere. Suponha que ´e verdade (4.1).
“Se conseguir chegar at´e um degrau, ent˜ao tamb´em consigo chegar ao seguinte.” (4.1)
Se nada mais for dito, n˜ao pode concluir que “consegue chegar ao 16o
¯ degrau”.
Suponha agora n˜ao s´o (4.1) mas tamb´em (4.2).
“Consigo chegar ao 13o
¯ degrau” (4.2)
O que pode concluir? Como consegue chegar ao 13o
¯ e ´e verdade (4.1), ent˜ao consegue chegar
ao 14o
¯. Como consegue chegar ao 14o
¯ e ´e verdade (4.1), ent˜ao consegue chegar ao 15o
¯. Como
consegue chegar ao 15o
¯ e ´e verdade (4.1), ent˜ao consegue chegar ao 16o
¯. De (4.1) e (4.2),
conclui-se (4.3).
“Consegue chegar ao n-´esimo degrau, qualquer que seja n ≥ 13.” (4.3)
Como n˜ao ´e dito sobre de que forma chegou ao 13o
¯ degrau, nada pode concluir sobre a
possibilidade de chegar ao degrau n, para n < 13.
Mas, suponha agora que (4.4) ´e verdade.
“Consigo chegar ao 1o
¯ degrau”. (4.4)
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 34
Do mesmo modo que anteriormente, se supuser (4.1) e (4.4) ent˜ao pode concluir (4.5).
“Consegue chegar ao n-´esimo degrau, qualquer que seja n ≥ 1.” (4.5)
Proposi¸c˜ao 13 (Princ´ıpio de Indu¸c˜ao Matem´atica) Escrevamos P(n) como abreviatura
de “o inteiro n˜ao negativo n satisfaz a propriedade/condi¸c˜ao P ”. Tem-se ∀n ∈ N P(n), se
forem satisfeitas as duas condi¸c˜oes (i) e (ii) seguintes.
(i) P(0) ´e verdade;
(ii) ∀k ∈ N ( P(k) ⇒ P(k + 1) ), isto ´e para todo k ∈ N, se P(k) ent˜ao P(k + 1);
P(0) diz-se (caso de) base de indu¸c˜ao. Em P(k) ⇒ P(k+1), chamamos a P(k) a hip´otese
de indu¸c˜ao e a P(k + 1) a tese.
Exemplo 11 Seja An a ´area dum quadrado de lado 2n, com n ≥ 1 (inteiro). Vamos mostrar
que o resto da divis˜ao de An por 3 ´e 1, qualquer que seja n ≥ 1.
(i) (Caso de base) Como A1 ´e 4 e sabemos que o resto da divis˜ao de 4 por 3 ´e 1, ´e verdade
que a condi¸c˜ao se verifica para n = 1.
(ii) (Hereditariedade) Mostremos que qualquer que seja k ≥ 1, se Ak for da forma 3p+1 para
algum inteiro n˜ao negativo p, ent˜ao Ak+1 = 3q + 1 para algum inteiro n˜ao negativo q.
Ora, se Ak = 3p+1, ent˜ao Ak+1 = (2k+1)2 = 4(2k)2 = 4Ak = 4(3p+1) = 3(4p+1)+1.
Ou seja, Ak+1 = 3q + 1 para algum inteiro n˜ao negativo, j´a que se p ∈ Z e p ≥ 0 ent˜ao
4p + 1 ∈ Z e 4p + 1 ≥ 0.
Usando (ii) e (i) podemos concluir que qualquer que seja n ≥ 1, a ´area do quadrado de
lado 2n excede numa unidade um m´ultiplo de 3.
Observe que, se nos fosse pedido, podiamos apresentar a dedu¸c˜ao de que A6 excede numa
unidade um m´ultiplo de 3:
Por (i), sabemos que o resto da divis˜ao de A1 por 3 ´e 1;
De (i) e (ii), concluimos que o resto da divis˜ao de A2 por 3 ´e 1;
Como o resto da divis˜ao de A2 por 3 ´e 1, concluimos, por (ii), que o resto da divis˜ao de A3 por 3 ´e 1;
Como o resto da divis˜ao de A3 por 3 ´e 1, concluimos, por (ii), que o resto da divis˜ao de A4 por 3 ´e 1;
Como o resto da divis˜ao de A4 por 3 ´e 1, concluimos, por (ii), que o resto da divis˜ao de A5 por 3 ´e 1;
Como o resto da divis˜ao de A5 por 3 ´e 1, concluimos, por (ii), que o resto da divis˜ao de A6 por 3 ´e 1.
Do mesmo modo que conseguimos mostrar que A6 d´a resto 1 quando dividido por 3,
podiamos, dado um n ≥ 1, apresentar a dedu¸c˜ao de que An d´a resto 1 quando dividido por 3,
se tal nos fosse pedido.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 35
Proposi¸c˜ao 14 (Vers˜ao geral do Princ´ıpio de Indu¸c˜ao) Seja n0 ∈ Z, e suponha que
P(n) denota “o inteiro n satisfaz a propriedade P. Se forem satisfeitas as duas condi¸c˜oes (i)
e (ii) seguintes, ent˜ao, para todo o inteiro n ≥ n0 tem-se P(n).
(i) P(n0) ´e verdade;
(ii) ∀k ≥ n0 ( P(k) ⇒ P(k + 1) ), isto ´e, para todo inteiro k tal que k ≥ n0, se P(k)
ent˜ao P(k + 1);
Exemplo 12 Vamos mostrar que qualquer que seja n ≥ 1 e quaisquer que sejam a, b ∈ R+,
se tem (a + b)n < 2n(an + bn).
Podemos concluir isso se mostrarmos que as duas condi¸c˜oes de aplicabilidade do princ´ıpio
de indu¸c˜ao matem´atica se verificam neste caso.
(i) Para n=1, (a + b)1 = a + b < 2(a + b) = 21(a1 + b1), porque a, b ∈ R+.
(ii) Suponhamos agora que para um dado k ≥ 1 se tem (a+b)k < 2k(ak +bk), para a, b ∈ R+
quaisquer, e vamos mostrar que ent˜ao (a + b)k+1 < 2k+1(ak+1 + bk+1).
Como (a + b)k+1 = (a + b)k(a + b), e por hip´otese
(a + b)k
< 2k
(ak
+ bk
),
concluimos que
(a + b)k+1
< 2k
(ak
+ bk
)(a + b) = 2k
(ak+1
+ bk+1
+ ak
b + bk
a).
Como
2k
(ak+1
+ bk+1
+ ak
b + bk
a) = 2k
(ak+1
+ bk+1
) + 2k
(ak
b + bk
a),
para concluir que (a + b)k+1 < 2k+1(ak+1 + bk+1) vamos mostrar que
ak
b + bk
a ≤ ak+1
+ bk+1
quaisquer que sejam a, b reais positivos. Tem-se
ak
b + bk
a − ak+1
− bk+1
= −(ak
− bk
)(a − b) ≤ 0,
j´a que quaisquer que sejam x, y ∈ R+, se x ≤ y ent˜ao xp ≤ yp, para todo p ≥ 1 (relembre
que as fun¸c˜oes fp(x) = xp, s˜ao estritamente crescentes em R+).
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 36
Exerc´ıcio 4.1.1 Aplique o princ´ıpio de indu¸c˜ao matem´atica para resolver os problemas se-
guintes.
a) Mostrar que |sen(nx)| ≤ n|sen(x)|, para todo x ∈ R e todo n ∈ N.
b) Mostrar que 4n + 15n − 1 ´e m´ultiplo de 9, para todo n ≥ 1.
Exemplo 13 Considere o seguinte algoritmo (imagine que Y ´e uma caixa1).
1. Coloque em Y o valor 0.
2. Escolha um inteiro (vamos referi-lo por X).
3. Se X = 0 ent˜ao fa¸ca 7.
4. Se X > 0 ent˜ao volte a 2.
5. Substitua o valor em Y pela soma do valor que l´a estava com dois.
6. Volte a 2.
7. Indique o valor que guarda em Y, e p´are.
O valor em Y quando se executa 7. ´e o dobro do n´umero de inteiros negativos nos valores
escolhidos. Para o provar, vamos mostrar que tal propriedade caracteriza o valor de Y em
cada itera¸c˜ao do ciclo (ou seja, ´e um invariante do ciclo). Usamos indu¸c˜ao sobre o n´umero
de itera¸c˜oes efectuadas.
O valor que est´a guardado em Y quando est´a a executar 2. pela 2a
¯ vez ´e 0 se o primeiro
valor escolhido em 2. for positivo, e ´e 2 se tal valor for negativo.
Quando est´a a executar 2. pela 3a
¯ vez, o valor em Y ´e 4 se ambos os valores escolhidos
anteriormente forem negativos, ´e 2 se um for negativo e o outro positivo, e ´e 0 se ambos forem
positivos.
Suponhamos que para um dado k ≥ 1, quando se se est´a a executar 2. pela ka
¯ vez, o valor
em Y ´e o dobro do n´umero de inteiros negativos nos k − 1 valores escolhidos anteriormente.
Ent˜ao, por an´alise do algoritmo, concluimos que se se estiver a executar 2. pela (k + 1)a
¯
vez, o valor em Y ´e igual ao valor anterior se tivermos dado mais um n´umero positivo, ou foi
incrementado de duas unidades, se tivermos dado mais um n´umero negativo. Portanto, se
quando se estiver a executar 2. pela ka
¯ vez, o valor em Y ´e o dobro do n´umero de inteiros
negativos nos k−1 valores escolhidos anteriormente, ent˜ao quando se estiver a executar 2. pela
(k + 1)a
¯ vez, valor em Y ´e o dobro do n´umero de inteiros negativos nos k valores escolhidos
anteriormente.
Consequentemente, por indu¸c˜ao matem´atica, podemos concluir que o valor em Y quando
se executa 7. ´e o dobro do n´umero de inteiros negativos nos valores escolhidos.
1
Na terminologia de linguagens de programa¸c˜ao, X e Y s˜ao vari´aveis de programa¸c˜ao.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 37
4.1.1 Erros frequentes
´E necess´ario mostrar as duas condi¸c˜oes de aplicabilidade do princ´ıpio de indu¸c˜ao, sem o que
as provas n˜ao ficam completas e, no pior dos casos, os resultados mal “demonstrados” s˜ao
mesmo falsos.
O exemplo seguinte serve para ilustrar o facto de certas propriedades, n˜ao observ´aveis,
poderem ser heredit´arias. Heredit´arias, no sentido de se um dado inteiro as satisfizer, tamb´em
o inteiro seguinte as satisfaz.
Exemplo 14 Considere a seguinte demonstra¸c˜ao (claramente, errada!) de que “entre dois
inteiros consecutivos existe uma infinidade de inteiros”.
Prova: Para todo x ∈ R (em particular para x inteiro) se k ≤ x ≤ k + 1 ent˜ao
k + 1 ≤ x + 1 ≤ k + 2, qualquer que seja k ∈ N. Assim, se entre k e k + 1 existir
uma infinidade de inteiros, ent˜ao entre k+1 e k+2 tamb´em existe uma infinidade
de inteiros. De facto, a cada inteiro x no intervalo [k, k +1] podemos associar um
inteiro x no intervalo [k + 1, k + 2], a saber, por exemplo x ´e x + 1.
Logo, por indu¸c˜ao matem´atica sobre k, concluimos que entre dois inteiros conse-
cutivos existe uma infinidade de inteiros.
Como entre dois inteiros consecutivos n˜ao h´a qualquer outro inteiro, a prova tem que estar
errada. O erro est´a na conclus˜ao “precipitada”. N˜ao se mostrou que existia um intervalo
[k, k +1] que tinha uma infinidade de inteiros. Apenas se mostrou a condi¸c˜ao (ii) do princ´ıpio
de indu¸c˜ao. A condi¸c˜ao (i) n˜ao foi provada, nem se pode provar!
Exemplo 15 A demonstra¸c˜ao seguinte est´a obviamente errada dado que permite concluir
que “todos os cavalos s˜ao brancos” (e, todos sabemos que h´a cavalos doutras cores).
Vamos mostrar que qualquer que seja o n´umero de cavalos que estejam numa
cerca, se existir algum cavalo branco entre eles ent˜ao todos os cavalos nessa cerca
s˜ao brancos.
Prova: Para isso vamos mostrar que as duas condi¸c˜oes (i) e (ii) do princ´ıpio de
indu¸c˜ao se verificam nessa situa¸c˜ao.
(i) Como deve estar pelo menos um cavalo branco na cerca, podemos afirmar
que se s´o existir um cavalo na cerca ´e branco.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 38
(ii) Fixemos um k ∈ N, e suponhamos que se existirem k cavalos numa cerca
qualquer, estando pelo menos um cavalo branco entre eles, ent˜ao todos os
demais s˜ao brancos. Consideramos agora uma cerca onde est˜ao k + 1 cavalos
sendo branco pelo menos um deles. Retiremos um cavalo da cerca deixando
ficar o branco. Dado que est˜ao k cavalos na cerca, estando um branco entre
eles, segue pela hip´otese de indu¸c˜ao, que os k cavalos na cerca s˜ao brancos.
Resta mostrar que o cavalo que retir´amos primeiramente tamb´em era branco.
Retiremos um dos cavalos que est´a na cerca (´e indiferente qual se retira
porque de facto todos s˜ao brancos), e voltemos a colocar o que retir´amos
primeiramente. Mais uma vez, pela hip´otese, podemos concluir que todos os
cavalos que est˜ao agora na cerca s˜ao brancos.
Assim, pelo princ´ıpio de indu¸c˜ao matem´atica segue a validade da proposi¸c˜ao que
queriamos mostrar.
Sabemos que “se existir algum cavalo branco numa cerca”, tamb´em l´a podem estar cavalos
doutras cores. Logo, a afirma¸c˜ao que “mostr´amos” por indu¸c˜ao ´e falsa. Mas, como o sistema
dedutivo que estamos a seguir ´e consistente, n˜ao podemos deduzir proposi¸c˜oes falsas, pelo
que h´a que encontrar um erro (v´ıcio) na prova dada.
Sabemos que se estiverem dois cavalos numa cerca e um deles for branco, ent˜ao isso n˜ao
implica que o outro tamb´em seja branco. Por outras palavras, ´e falso P(1) ⇒ P(2).
Para localizarmos o erro, vamos ent˜ao seguir em detalhe a prova de (ii) para k = 1.
Fixemos k = 1. Suponhamos (podemos sempre supor o que quisermos) que ´e
sempre branco o cavalo que estiver s´ozinho numa cerca em que h´a pelo menos
um cavalo branco. Consideramos agora uma cerca onde est˜ao dois cavalos sendo
branco pelo menos um deles. Retiremos um cavalo da cerca deixando ficar o
branco. Dado que est´a um s´o cavalo na cerca, estando um branco na cerca, segue
pela hip´otese de indu¸c˜ao, que o cavalo na cerca ´e branco. Resta mostrar que
o cavalo que retir´amos primeiramente tamb´em era branco. Retiremos o cavalo
que est´a na cerca, e voltemos a colocar o que retir´amos primeiramente. Agora
n˜ao podemos aplicar a hip´otese, pois s´o est´a na cerca o cavalo que acab´amos de
l´a colocar, e n˜ao sabemos de que cor ´e (por isso n˜ao podemos afirmar que haja
algum cavalo branco na cerca).
Note que a prova de (ii) ´e v´alida para k ≥ 2, ou seja ´e verdade que qualquer que seja
k ≥ 2, se forem brancos os k cavalos que estiverem numa qualquer cerca onde est´a pelo menos
um branco, ent˜ao s˜ao brancos os k + 1 cavalos que estiverem numa qualquer cerca onde est´a
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 39
pelo menos um branco. Conclus˜ao: s´o n˜ao conseguimos mostrar que “todos os cavalos s˜ao
brancos” porque P(1) ⇒ P(2).
No exemplo2 que se segue, a prova est´a errada, mas o resultado ´e v´alido.
Exemplo 16 Pretendemos mostrar que qualquer que seja n ≥ 1, o quadrado de lado 2n pode
ser coberto por pe¸cas da forma seguinte, ficando apenas um quadrado 1 × 1 por cobrir.
A propriedade verifica-se para n = 1, por exemplo:
Para concluir, por indu¸c˜ao, que a propriedade ´e v´alida para todo n ≥ 1, resta
mostrar que qualquer que seja k ≥ 1, se os quadrados de lado 2k admitem a
cobertura descrita, ent˜ao os quadrados de lado 2k+1 tamb´em admitem.
Dado um quadrado de lado 2k+1 podemos dividi-lo em quatro quadrados de lado 2k
como se ilustra na figura abaixo. Por hip´otese, cada quadrado de lado de 2k pode
ser coberto por pe¸cas da forma descrita acima. Fazemos para cada um dos quatro
uma tal cobertura de forma a ficarem a descoberto os quadrados 1 × 1 indicados
na figura. Verificamos que os trˆes quadrados 1 × 1 (ao centro) podem ser cobertos
por uma pe¸ca, pelo que s´o fica um quadrado 1 × 1 por cobrir.
2k+1
2k
2k1
1
Esta prova n˜ao est´a correcta! Porquˆe? Na demonstra¸c˜ao supusemos que o quadrado por
cobrir, podia estar num canto, mas o quadrado que deix´amos depois a descoberto n˜ao ficou
num canto. No entanto, podemos corrigir a prova, mostrando um resultado mais forte do que
o enunciado inicialmente. . . “a cobertura pode ser tal que o quadrado 1 × 1 a descoberto fica
num canto”. Para isso, basta notar que caso n = 1, o quadrado por cobrir est´a num canto, e
que para mostrar que ∀n (P(n) ⇒ P(n + 1)) podemos fazer o seguinte.
2
de Maggie Johnson, Introducton to Induction, Lecture Notes CS109, 1998.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
4.2. INDUC¸ ˜AO FORTE 40
2k+1
2k
2k
4.2 Indu¸c˜ao Forte
Em certos casos ´e ´util refor¸car a hip´otese de indu¸c˜ao.
Exemplo 17 Para mostrar que qualquer inteiro maior do que 1 ´e ou primo ou produto de
primos, fixado um k, ´e conveniente assumir que j´a se mostrou que todo i ∈ N tal que 2 ≤ i ≤ k
ou ´e primo ou ´e produto de primos porque n˜ao basta ter a decomposi¸c˜ao de k em primos para
construir a decomposi¸c˜ao de k + 1. A prova ficaria ent˜ao:
• Pela defini¸c˜ao de primo, 2 ´e primo.
• Seja k ∈ N tal que k ≥ 2. Suponhamos que j´a mostr´amos que todo i ∈ N tal que
2 ≤ i ≤ k ´e ou primo ou produto de primos. Vamos mostrar que ent˜ao tamb´em
podemos concluir que k + 1 ´e primo ou produto de primos. De facto, se k + 1 n˜ao for
primo, existem i1, i2 ∈ N  {0, 1} tais que k + 1 = i1i2. Como 2 ≤ i1 ≤ k e 2 ≤ i2 ≤ k,
sabemos j´a que i1 ´e primo ou produto de primos e i2 ´e primo ou produto de primos.
Analisando os quatro casos (a) i1 e i2 primos, (b) i1 e i2 produtos de primos, (c) i1
primo e i2 produto de primos, e (d) i1 produto de primos e i2 primo, concluimos que se
k + 1 = i1i2 ent˜ao k + 1 pode-se escrever como produto de primos. Logo, se k + 1 n˜ao
´e primo, k + 1 ´e um produto de primos, ou seja, k + 1 ´e primo ou produto de primos.
Mostr´amos que 2 ´e primo (ou produto de primos) e que qualquer que seja k ≥ 2 se todo i tal
que 2 ≤ i ≤ n for primo ou produto de primos ent˜ao k + 1 ´e primo ou produto de primos.
Portanto, por indu¸c˜ao, n ´e primo ou produto de primos, qualquer que seja n ≥ 2.
Proposi¸c˜ao 15 (Vers˜ao forte do princ´ıpio de indu¸c˜ao) Seja P(n) uma condi¸c˜ao na
vari´avel n ∈ Z. Dado n0 ∈ Z, se forem satisfeitas as duas condi¸c˜oes (i) e (ii) seguintes, ent˜ao
∀n ≥ n0 P(n).
(i) P(n0) ´e verdade;
(ii) para todo k ∈ Z, se se tem P(i) para todo i ∈ Z com n0 ≤ i ≤ k, tem-se P(k + 1).
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
4.2. INDUC¸ ˜AO FORTE 41
Exemplo 18 Seja “QS” (´e conhecido por quick-sort) o algoritmo seguinte.
0. Sup˜oe-se dada uma sequˆencia finita de inteiros (pode n˜ao ter elementos).
1. Se a sequˆencia n˜ao tem qualquer elemento ent˜ao indicar como resultado a
pr´opria sequˆencia.
2.1 Sen˜ao seja X o primeiro elemento na sequˆencia dada.
2.2 Separar os restantes elementos da sequˆencia formando a subsequˆencia dos
menores do que X e a subsequˆencia dos maiores ou iguais que X.
2.3 Aplicar “QS” a cada uma das subsequˆencias: sejam R< e R≥ as sequˆencias
resultantes (respectivamente).
2.4. Dar como resultado os elementos de R<, seguidos de X, seguidos dos
elementos de R≥.
O algoritmo “QS” ordena por ordem crescente a sequˆencia finita de inteiros dada. Para o
provar, vamos usar indu¸c˜ao sobre o n´umero de elementos na sequˆencia dada.
(i) Se a sequˆencia dada n˜ao tem elementos, ent˜ao podemos dizer que a sequˆencia resultante,
que ´e igual `a dada (por 1.) est´a ordenada por ordem crescente.
(ii) Seja S uma qualquer sequˆencia de inteiros, e seja n (n ≥ 1 fixo) o seu n´umero de
elementos. Suponhamos agora, como hip´otese de indu¸c˜ao, que quando aplicamos “QS”
a uma qualquer sequˆencia W de inteiros cujo n´umero de elementos ´e menor do que n,
obtemos os elementos de W por ordem crescente.
Queremos mostrar que “QS” quando aplicado a S, ordena S por ordem crescente.
Como S tem elementos, aplicam-se as instru¸c˜oes 2.1–2.4. Uma vez que nas sub-
sequˆencias formadas em 2.2 n˜ao entra o primeiro elemento de S, cada uma delas tem
menos elementos do que S. Assim, por hip´otese de indu¸c˜ao, “QS” quando aplicado a
cada uma dessas subsequˆencias, ordena-as por ordem crescente. Ent˜ao, as sequˆencias
referidas por R< e R≥ (em 2.3) s˜ao respectivamente as sequˆencias de elementos menores
do que X e maiores ou iguais a X, ordenadas por ordem crescente. Portanto, o resultado
indicado em 2.4 n˜ao ´e mais do que a sequˆencia S ordenada por ordem crescente.
Proposi¸c˜ao 16 Os princ´ıpios de indu¸c˜ao forte e fraca s˜ao equivalentes, ou seja se existir
uma prova de ∀n ∈ N P(n) por indu¸c˜ao fraca ent˜ao tamb´em existe uma prova por indu¸c˜ao
forte. E vice-versa, se existir uma prova por indu¸c˜ao forte ent˜ao existe uma prova por indu¸c˜ao
fraca.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
4.2. INDUC¸ ˜AO FORTE 42
Prova: ´E trivial que se existir uma prova dum dado resultado por indu¸c˜ao fraca ent˜ao
existe uma prova por indu¸c˜ao forte, pois a mesma prova serve!
Portanto, resta-nos mostrar que se existir uma prova por indu¸c˜ao forte ent˜ao existe uma
prova por indu¸c˜ao fraca. Para tal, vamos mostrar que se existe uma prova de ∀n ∈ Z+ P(n)
por indu¸c˜ao forte, ent˜ao existe uma prova por indu¸c˜ao fraca de ∀n ∈ Z+ (∀i ≤ n P(i)).
Podemos depois concluir que existe uma prova por indu¸c˜ao fraca de ∀n ∈ Z+ P(n) porque
(∀n ∈ Z+ (∀i ≤ n P(i))) ⇒ ∀n ∈ Z+ P(n).
Seja Q(n) a condi¸c˜ao ∀i ≤ n P(i).
Mostrar que Q(1) ´e verdade, ´e mostrar que ∀i ≤ 1 P(i), o que equivale a mostrar que
P(1) ´e verdade. Como para mostrar que ∀n P(n) por indu¸c˜ao forte, teve que se justificar
que P(1) era verdade, basta-nos reproduzir essa justifica¸c˜ao.
Para mostrar que ∀n ( Q(n) ⇒ Q(n + 1) ), ou seja que
∀n ( (∀i ≤ n P(i)) ⇒ (∀i ≤ n + 1 P(i)) )
´e ´util recordar que existe uma prova de
∀n ( (∀i ≤ n P(i)) ⇒ P(n + 1) )
que teve de ser feita para mostrar a proposi¸c˜ao ∀n P(n) por indu¸c˜ao forte. E, como
∀n ((∀i ≤ n P(i)) ⇒ (∀i ≤ n P(i)))
tem-se ∀n ((∀i ≤ n P(i)) ⇒ (P(n+1)∧(∀i ≤ n P(i)))). Ou seja, ∀n ∈ Z+ (Q(n) ⇒ Q(n+1)).
Assim, mostr´amos que Q(1) era verdade e ∀n ∈ Z+ (Q(n) ⇒ Q(n + 1)). Consequente-
mente, pelo princ´ıpio de indu¸c˜ao fraca, concluimos ∀n ∈ Z+ Q(n).
4.2.1 Outras formula¸c˜oes do princ´ıpio de indu¸c˜ao
Proposi¸c˜ao 17 Seja A = {n ∈ N | P(n)}, onde P(n) denota “n satisfaz a propriedade P”.
Se A satisfizer as condi¸c˜oes (i) e (ii) seguintes, ent˜ao A = N.
(i) 0 ∈ A
(ii) ∀k ∈ N (k ∈ A ⇒ k + 1 ∈ A)
Proposi¸c˜ao 18 Seja A = {n ∈ N | P(n)}, onde P(n) denota “n satisfaz a propriedade P”.
Se A satisfizer as condi¸c˜oes (i) e (ii) seguintes, ent˜ao A = N.
(i) 0 ∈ A
(ii) ∀k∈N ( (∀i ≤ k i∈A) ⇒ k + 1 ∈ A )
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
Cap´ıtulo 5
Rela¸c˜oes Bin´arias
5.1 Rela¸c˜oes Bin´arias de A em B
Sejam A e B conjuntos. Designa-se por produto cartesiano de A por B, e denota-se por
A × B , o conjunto dos pares ordenados (a, b) tais que a ∈ A e b ∈ B , ou seja
A × B = {(a, b) | a ∈ A e b ∈ B}
Qualquer subconjunto R do produto cartesiano de A por B diz-se rela¸c˜ao bin´aria de A
em B. A nota¸c˜ao a R b ser´a usada com o mesmo significado de (a, b) ∈ R.
Exemplo 19 Seja A o conjunto dos alunos, P o conjunto dos docentes, L o conjunto das
licenciaturas e C o conjunto das disciplinas das licenciaturas da FCUP.
R = {(x, y) ∈ A × A | x e y s˜ao alunos da mesma licenciatura} ⊆ A × A
S = {(x, y) ∈ P × C | x ´e professor da disciplina y} ⊆ P × C
T = {(x, y) ∈ A × C | x est´a inscrito na disciplina y} ⊆ A × C
U = {(x, y) ∈ A × L | x ´e aluno da licenciatura y} ⊆ A × L
Os conjuntos R, S, T e U s˜ao rela¸c˜oes bin´arias.
5.1.1 Opera¸c˜oes com rela¸c˜oes bin´arias
Como as rela¸c˜oes bin´arias s˜ao conjuntos (de pares ordenados), podemos definir a uni˜ao e a
intersec¸c˜ao de rela¸c˜oes bin´arias e ainda a rela¸c˜ao complementar. Sendo R, S ⊆ A × B:
R ∪ S = {(a, b) ∈ A × B | (a, b) ∈ R ∨ (a, b) ∈ S}
R ∩ S = {(a, b) ∈ A × B | (a, b) ∈ R ∧ (a, b) ∈ S}
R = {(a, b) ∈ A × B | (a, b) /∈ R} = (A × B)R
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.1. RELAC¸ ˜OES BIN´ARIAS DE A EM B 44
Para al´em destas opera¸c˜oes, definimos tamb´em a no¸c˜ao de inversa e de composta. A
rela¸c˜ao inversa de R, representada por R−1, ´e a rela¸c˜ao de B em A definida pelo conjunto
R−1
= {(b, a) | (a, b) ∈ R}
Dadas duas rela¸c˜oes R ⊆ A × B e S ⊆ B × C, diz-se rela¸c˜ao composta de R e S, e
representa-se por RS , a rela¸c˜ao bin´aria de A em C definida por
RS = {(a, c) | existe b ∈ B tal que (a, b) ∈ R e (b, c) ∈ S}
Em alternativa podiamos escrever S ◦ R, que se lˆe S ap´os R, `a semelhan¸ca da nota¸c˜ao
usual para composi¸c˜ao de fun¸c˜oes. Na sec¸c˜ao 5.1.3, veremos que as fun¸c˜oes correspondem a
rela¸c˜oes bin´arias que satisfazem condi¸c˜oes adicionais. A rela¸c˜ao inversa corresponde `a no¸c˜ao
de imagem rec´ıproca, que associa a cada transformado os elementos do dom´ınio que o tˆem
por imagem.
Exemplo 20 Seja A = {1, 2, 3}, B = {1, 2, 3, 4, 5}, C = {1, 2},
R = {(1, 2), (1, 3), (2, 2), (3, 4), (3, 5)}
S = {(1, 1), (3, 2), (5, 1), (5, 2)}
A rela¸c˜ao R−1 ´e {(2, 1), (3, 1), (2, 2), (4, 3), (5, 3)}.
R S
1 GG
BB„„„„„„„„„„„„„„ 2
2
RRjjjjjjjjjjjjjj
3 GG 2
3
66ssssssssssssssss GG 5
BB„„„„„„„„„„„„„
SSjjjjjjjjjjjjj
1 GG 1
4
RS = {(1, 2), (3, 1), (3, 2)}, j´a que: (1, 2) ∈ RS pois (1, 3) ∈ R ∧ (3, 2) ∈ S; (3, 1) ∈ RS
porque (3, 5) ∈ R ∧ (5, 1) ∈ S; (3, 2) ∈ RS porque (3, 5) ∈ R ∧ (5, 2) ∈ S; (1, 1) /∈ RS porque
∀y ∈ B (1, y) /∈ R ∨ (y, 1) /∈ S (de facto, ∀y ∈ B (1, y) ∈ R ⇔ y = 2 ∨ y = 3, mas
(2, 1) /∈ S ∧ (3, 1) /∈ S); Do mesmo modo se verifica que, (2, 1) /∈ RS, (2, 2) /∈ RS.
Como RS ⊆ {1, 2, 3}×{1, 2}, o que acab´amos de fazer foi uma an´alise exaustiva dos pares
poss´ıveis, justificando se pretenciam ou n˜ao a RS. Mais adiante, ser˜ao apresentados alguns
resultados te´oricos que facilitar˜ao a determina¸c˜ao da composta.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.1. RELAC¸ ˜OES BIN´ARIAS DE A EM B 45
Exemplo 21 Voltemos a considerar o Exemplo 19. Podemos verificar que:
{(x, y) ∈ A × P | x ´e aluno duma disciplina de que y ´e professor} = TS−1
R = {(x, y) ∈ A × A | x e y s˜ao alunos da mesma licenciatura } = UU −1
5.1.2 Matriz duma rela¸c˜ao bin´aria
Sejam A e B conjuntos finitos e n˜ao vazios, tais que |A| = n e |B| = m. Podemos identificar A
com {ai | 1 ≤ i ≤ n} e B com {bj | 1 ≤ j ≤ m}. Qualquer rela¸c˜ao R de A em B pode
ser representada por uma tabela – matriz da rela¸c˜ao – do modo seguinte. O elemento que
est´a na linha i e coluna j ´e 1 se (ai, bj) ∈ R, e ´e 0 se (ai, bj) /∈ R. Ou seja, se MR for tal
matriz, e MR[i, j] representar o elemento na linha i e coluna j ent˜ao tem-se
MR[i, j] = 1 se e s´o se (ai, bj) ∈ R
MR[i, j] = 0 se e s´o se (ai, bj) /∈ R
com 1 ≤ i ≤ n e 1 ≤ j ≤ m.
Exemplo 22 Seja A = {1, 2, 3}, B = {1, 2, 3, 4, 5} e R ⊆ A × B,
R = {(1, 2), (1, 3), (2, 2), (3, 4), (3, 5)}
Ent˜ao,
MR =



0 1 1 0 0
0 1 0 0 0
0 0 0 1 1



Matriz da inversa
Sejam A = {a1, . . . , an} e B = {b1, . . . , bm}, m, n ∈ Z+ (fixos) e R ⊆ A × B. Ent˜ao
MR−1 [i, j] = 1 ⇐⇒ (bi, aj) ∈ R−1 ⇐⇒ (aj, bi) ∈ R ⇐⇒ MR[j, i] = 1
MR−1 [i, j] = 0 ⇐⇒ (bi, aj) /∈ R−1 ⇐⇒ (aj, bi) /∈ R ⇐⇒ MR[j, i] = 0
com 1 ≤ i ≤ m e 1 ≤ j ≤ n, pelo que a matriz da inversa de R ´e a transposta da matriz
de R (cada linha da transposta de R ´e uma coluna da matriz R).
Exemplo 23 Para R como no Exemplo 22, R−1 = {(2, 1), (3, 1), (2, 2), (4, 3), (5, 3)}. Ent˜ao,
MR−1 =








0 0 0
1 1 0
1 0 0
0 0 1
0 0 1








=



0 1 1 0 0
0 1 0 0 0
0 0 0 1 1



t
= Mt
R
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.1. RELAC¸ ˜OES BIN´ARIAS DE A EM B 46
Matriz da composta
Sejam A, B, e C conjuntos finitos e n˜ao vazios tais que |A| = n, |B| = m e |C| = p. Dadas
duas rela¸c˜oes R e S tais que R ⊆ A × B e S ⊆ B × C, a matriz da rela¸c˜ao composta
RS tem n linhas e p colunas e
MRS[i, j] =
1≤k≤m
(MR[i, k] ∧ MS[k, j]), 1 ≤ i ≤ n, 1 ≤ j ≤ p
Notar que por defini¸c˜ao da rela¸c˜ao composta tem-se aiRScj se e s´o se existe bk tal que
aiRbk ∧ bkScj. Ou seja, MRS[i, j] = 1 se e s´o se MR[i, k] = 1 ∧ MS[k, j] = 1 para algum k.
Ou seja, MRS[i, j] = 1 se e s´o se MR[i, 1] = 1∧MS[1, j] = 1 ou MR[i, 2] = 1∧MS[2, j] = 1
ou . . . ou MR[i, m] = 1∧MS[m, j] = 1, o que justifica a defini¸c˜ao dada para MRS[i, j]. Assim,
MRS = MRMS ´e um produto1 de matrizes cujos elementos pertencem ao corpo ({0, 1}, ∨, ∧).
Relembre que ∨ e ∧ denotam “ou” e “e” respectivamente e “0” e “1” representam os
valores l´ogicos falso e verdadeiro.
∨ 0 1
0 0 1
1 1 1
∧ 0 1
0 0 0
1 0 1
Exemplo 24 Seja A = {1, 2, 3}, B = {1, 2, 3, 4, 5}, C = {1, 2},
R = {(1, 2), (1, 3), (2, 2), (3, 4), (3, 5)}
MR =



0 1 1 0 0
0 1 0 0 0
0 0 0 1 1



S = {(1, 1), (3, 2), (5, 1), (5, 2)}
MS =








1 0
0 0
0 1
0 0
1 1








MRS =



0 1
0 0
1 1


 =



0 1 1 0 0
0 1 0 0 0
0 0 0 1 1











1 0
0 0
0 1
0 0
1 1








donde, RS = {(1, 2), (3, 1), (3, 2)} ⊆ A × C
1
Deve ficar claro quando estudar corpos e matrizes na disciplina de Elementos de ´Algebra Linear. Para
matrizes cujos elementos pertencem ao corpo dos reais (R, +, ∗), se M tem n linhas e m colunas e N tem m
linhas e p colunas, a matriz MN tem n linhas e p colunas, sendo MN[i, j] =
Pm
k=1(A[i, k] ∗ B[k, j]), para
1 ≤ i ≤ n e 1 ≤ j ≤ p (dado pelo produto escalar da linha i de M pela coluna j de N). Quando os elementos
pertencem a ({0, 1}, ∨, ∧), a disjun¸c˜ao ∨ substitui a soma + e a conjun¸c˜ao ∧ substitui o produto ∗.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
5.2. RELAC¸ ˜OES BIN´ARIAS DEFINIDAS NUM CONJUNTO 47
5.1.3 Fun¸c˜oes de A em B
Designa-se por fun¸c˜ao de A em B qualquer rela¸c˜ao bin´aria f de A em B tal que para todo
a ∈ A existe um ´unico b ∈ B tal que a f b, ou seja,
∀a ∈ A ∃1
b ∈ B a f b.
Se a f b ent˜ao escreve-se f(a) = b e diz-se que b ´e a imagem de a por f.
O conjunto A ´e o dom´ınio da fun¸c˜ao, e o conjunto B ´e o conjunto de chegada. O
subconjunto de B formado pelas imagens dos elementos de A diz-se imagem de A por f,
ou contradom´ınio de f. A imagem de A por f denota-se por f(A).
Uma fun¸c˜ao ´e injectiva se e s´o se cada elemento de B ´e imagem quando muito dum
elemento de A, ou seja
f injectiva sse ∀a1, a2 ∈ A ( f(a1) = f(a2) ⇒ a1 = a2 )
Uma fun¸c˜ao ´e sobrejectiva se e s´o qualquer elemento de B ´e imagem de algum elemento
de A, ou seja f(A) = B.
Uma fun¸c˜ao que ´e sobrejectiva e injectiva diz-se bijectiva. Assim, f ⊆ A × B ´e uma
fun¸c˜ao bijectiva se e s´o se
• ∀a ∈ A ∃1b ∈ B f(a) = b (fun¸c˜ao), e
• ∀b ∈ B ∃1a ∈ A f(a) = b (bijectiva)
Desta observa¸c˜ao resulta trivialmente a proposi¸c˜ao seguinte.
Proposi¸c˜ao 19 Seja f ⊆ A × B uma fun¸c˜ao. Ent˜ao f −1 ⊆ B × A ´e fun¸c˜ao se e s´o se f ´e
bijectiva.
Uma fun¸c˜ao diz-se invert´ıvel se a sua inversa ´e uma fun¸c˜ao.
Uma fun¸c˜ao parcial de A em B ´e uma rela¸c˜ao bin´aria f de A em B tal que se um elemento
a ∈ A tem imagem por f ent˜ao essa imagem ´e ´unica. Notar que a diferen¸ca relativamente
`a defini¸c˜ao de fun¸c˜ao ´e n˜ao se impor a condi¸c˜ao de que todos os elementos de A tenham
imagens por f.
5.2 Rela¸c˜oes Bin´arias Definidas num Conjunto
Seja A um conjunto. Chama-se rela¸c˜ao bin´aria definida em A ou simplesmente rela¸c˜ao
bin´aria em A a qualquer rela¸c˜ao bin´aria de A em A.
c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos
Apontamentos

Mais conteúdo relacionado

Mais procurados

Mais procurados (18)

Analise real cassio neri
Analise real   cassio neriAnalise real   cassio neri
Analise real cassio neri
 
Funcões de uma variável
Funcões de uma variávelFuncões de uma variável
Funcões de uma variável
 
Calculo 2p
Calculo 2pCalculo 2p
Calculo 2p
 
Análise Numérica
Análise NuméricaAnálise Numérica
Análise Numérica
 
Sebenta calculo
Sebenta calculoSebenta calculo
Sebenta calculo
 
Livro eduardo
Livro eduardoLivro eduardo
Livro eduardo
 
Apostila lógica matemática
Apostila lógica matemáticaApostila lógica matemática
Apostila lógica matemática
 
áLgebra linear
áLgebra linearáLgebra linear
áLgebra linear
 
Espaços metricos
Espaços metricosEspaços metricos
Espaços metricos
 
Algebra linear sergio zani
Algebra linear   sergio zaniAlgebra linear   sergio zani
Algebra linear sergio zani
 
Ap algebra linear 002
Ap algebra linear  002Ap algebra linear  002
Ap algebra linear 002
 
Residuos
ResiduosResiduos
Residuos
 
Algoritmos jabour
Algoritmos jabourAlgoritmos jabour
Algoritmos jabour
 
Apostila lineares.pdf
Apostila lineares.pdfApostila lineares.pdf
Apostila lineares.pdf
 
Intro teoria dos numerros i
Intro teoria dos numerros iIntro teoria dos numerros i
Intro teoria dos numerros i
 
Calculo numerico do professor eduardo colli.
Calculo numerico do professor  eduardo colli.Calculo numerico do professor  eduardo colli.
Calculo numerico do professor eduardo colli.
 
Mecanica quantica obra coletiva hfleming
Mecanica quantica   obra coletiva hflemingMecanica quantica   obra coletiva hfleming
Mecanica quantica obra coletiva hfleming
 
Solucoeselon
SolucoeselonSolucoeselon
Solucoeselon
 

Semelhante a Apontamentos

Algoritmos e programação
Algoritmos e programaçãoAlgoritmos e programação
Algoritmos e programaçãoJucir
 
Apostila unijuí matemática aplicada à administração 2
Apostila unijuí   matemática aplicada à administração 2Apostila unijuí   matemática aplicada à administração 2
Apostila unijuí matemática aplicada à administração 2Claudia Sá de Moura
 
Apostila inferência bayesiana ricardo ehlers
Apostila inferência bayesiana   ricardo ehlersApostila inferência bayesiana   ricardo ehlers
Apostila inferência bayesiana ricardo ehlersCristiane Tonilo
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosRicardo Borges
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmospaula maria
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmososmarpx
 
Algebra linear um_livro_colaborativo_ufrgs_reamat_2018_210pag
Algebra linear um_livro_colaborativo_ufrgs_reamat_2018_210pagAlgebra linear um_livro_colaborativo_ufrgs_reamat_2018_210pag
Algebra linear um_livro_colaborativo_ufrgs_reamat_2018_210pagOnariClaudeGrossl
 
Conceitos básicos de Software R
Conceitos básicos de Software RConceitos básicos de Software R
Conceitos básicos de Software RThais Amaral
 
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...Fernando Passold
 
Livrocalcii
LivrocalciiLivrocalcii
Livrocalciicavip
 
Friedli, s. cálculo 1. 1ª ed. belo horizonte, imprensa universitária da ufmg,...
Friedli, s. cálculo 1. 1ª ed. belo horizonte, imprensa universitária da ufmg,...Friedli, s. cálculo 1. 1ª ed. belo horizonte, imprensa universitária da ufmg,...
Friedli, s. cálculo 1. 1ª ed. belo horizonte, imprensa universitária da ufmg,...Silvio Gomes
 

Semelhante a Apontamentos (20)

Algoritmos e programação
Algoritmos e programaçãoAlgoritmos e programação
Algoritmos e programação
 
Apostila unijuí matemática aplicada à administração 2
Apostila unijuí   matemática aplicada à administração 2Apostila unijuí   matemática aplicada à administração 2
Apostila unijuí matemática aplicada à administração 2
 
Paalga
PaalgaPaalga
Paalga
 
Apostila inferência bayesiana ricardo ehlers
Apostila inferência bayesiana   ricardo ehlersApostila inferência bayesiana   ricardo ehlers
Apostila inferência bayesiana ricardo ehlers
 
Fismat apostila
Fismat apostilaFismat apostila
Fismat apostila
 
Matrizes resumo
Matrizes resumoMatrizes resumo
Matrizes resumo
 
Matrizes - resumo
Matrizes - resumoMatrizes - resumo
Matrizes - resumo
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmos
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmos
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmos
 
F ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmosF ferrari ccechinel-introducao-a-algoritmos
F ferrari ccechinel-introducao-a-algoritmos
 
Algebra linear um_livro_colaborativo_ufrgs_reamat_2018_210pag
Algebra linear um_livro_colaborativo_ufrgs_reamat_2018_210pagAlgebra linear um_livro_colaborativo_ufrgs_reamat_2018_210pag
Algebra linear um_livro_colaborativo_ufrgs_reamat_2018_210pag
 
Curso estatistica descritiva no r
Curso   estatistica descritiva no rCurso   estatistica descritiva no r
Curso estatistica descritiva no r
 
Conceitos básicos de Software R
Conceitos básicos de Software RConceitos básicos de Software R
Conceitos básicos de Software R
 
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...
Apostila (notas de aula) Teoria de Controle Digital (ou Discreto no tempo)...
 
Curso analise-real
Curso analise-realCurso analise-real
Curso analise-real
 
Livrocalcii
LivrocalciiLivrocalcii
Livrocalcii
 
Funções - Teoria
Funções - TeoriaFunções - Teoria
Funções - Teoria
 
apostila Algoritmos.pdf
apostila Algoritmos.pdfapostila Algoritmos.pdf
apostila Algoritmos.pdf
 
Friedli, s. cálculo 1. 1ª ed. belo horizonte, imprensa universitária da ufmg,...
Friedli, s. cálculo 1. 1ª ed. belo horizonte, imprensa universitária da ufmg,...Friedli, s. cálculo 1. 1ª ed. belo horizonte, imprensa universitária da ufmg,...
Friedli, s. cálculo 1. 1ª ed. belo horizonte, imprensa universitária da ufmg,...
 

Mais de Francisco Augusto de Junito (11)

Metodos quantitativos e_qualitativos_um_resgate_teorico
Metodos quantitativos e_qualitativos_um_resgate_teoricoMetodos quantitativos e_qualitativos_um_resgate_teorico
Metodos quantitativos e_qualitativos_um_resgate_teorico
 
6. anexos
6. anexos6. anexos
6. anexos
 
5. bibliografia
5. bibliografia5. bibliografia
5. bibliografia
 
4. corpo teses final
4. corpo teses final4. corpo teses final
4. corpo teses final
 
3. indice final fleitas
3. indice final fleitas3. indice final fleitas
3. indice final fleitas
 
2. resumo e agradecimento
2. resumo e agradecimento2. resumo e agradecimento
2. resumo e agradecimento
 
1. capa
1. capa1. capa
1. capa
 
Modelos teóricos
Modelos teóricosModelos teóricos
Modelos teóricos
 
Modelo de artigo de revisao
Modelo de artigo de revisaoModelo de artigo de revisao
Modelo de artigo de revisao
 
Minipauta2011
Minipauta2011Minipauta2011
Minipauta2011
 
Lista nominal cemar.2006
Lista nominal cemar.2006Lista nominal cemar.2006
Lista nominal cemar.2006
 

Apontamentos

  • 1. Alguns T´opicos de Matem´atica Discreta Ana Paula Tom´as Departamento de Ciˆencia de Computadores Faculdade de Ciˆencias do Porto 2005
  • 2.
  • 3. Conte´udo 1 Conjuntos 1 1.1 Opera¸c˜oes com Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Representa¸c˜ao de N´umeros em Computador 7 2.1 Sistema de Representa¸c˜ao Posicional . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.1 Rela¸c˜ao entre bin´ario, octal e hexadecimal . . . . . . . . . . . . . . . . 11 2.1.2 Adi¸c˜ao e multiplica¸c˜ao na base b . . . . . . . . . . . . . . . . . . . . . 12 2.1.3 Representa¸c˜ao de n´umeros com um n´umero fixo de d´ıgitos . . . . . . . 15 2.1.4 Representa¸c˜ao de n´umeros negativos . . . . . . . . . . . . . . . . . . . 16 2.2 Adi¸c˜ao e Subtrac¸c˜ao em n Bits . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.1 Adi¸c˜ao e subtrac¸c˜ao bin´aria de inteiros n˜ao negativos . . . . . . . . . 19 2.2.2 Adi¸c˜ao de inteiros em complemento para 2 . . . . . . . . . . . . . . . 20 2.2.3 Subtrac¸c˜ao de inteiros em complemento para 2 . . . . . . . . . . . . . 20 2.3 Representa¸c˜ao em V´ırgula Fixa . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4 Representa¸c˜ao em V´ırgula Flutuante . . . . . . . . . . . . . . . . . . . . . . . 21 3 Algumas No¸c˜oes de Divisibilidade 23 3.1 Bases de Numera¸c˜ao e Crit´erios de Divisibilidade . . . . . . . . . . . . . . . . 23 3.2 No¸c˜ao de Divisor e de M´ultiplo . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3 Factoriza¸c˜ao em Primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.1 Determina¸c˜ao de primos: crivo de Erast´otenes . . . . . . . . . . . . . 27 3.3.2 C´alculo de divisores por an´alise da factoriza¸c˜ao em primos . . . . . . . 28 3.4 M´aximo Divisor Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.4.1 C´alculo do m´aximo divisor comum pelo algoritmo de Euclides . . . . . 29 3.5 M´ınimo M´ultiplo Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.6 Congruˆencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 i
  • 4. 4 Indu¸c˜ao Matem´atica 33 4.1 Princ´ıpio de Indu¸c˜ao Matem´atica . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.1 Erros frequentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.2 Indu¸c˜ao Forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2.1 Outras formula¸c˜oes do princ´ıpio de indu¸c˜ao . . . . . . . . . . . . . . . 42 5 Rela¸c˜oes Bin´arias 43 5.1 Rela¸c˜oes Bin´arias de A em B . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.1.1 Opera¸c˜oes com rela¸c˜oes bin´arias . . . . . . . . . . . . . . . . . . . . . 43 5.1.2 Matriz duma rela¸c˜ao bin´aria . . . . . . . . . . . . . . . . . . . . . . . 45 5.1.3 Fun¸c˜oes de A em B . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2 Rela¸c˜oes Bin´arias Definidas num Conjunto . . . . . . . . . . . . . . . . . . . . 47 5.2.1 Propriedades das rela¸c˜oes bin´arias definidas em A . . . . . . . . . . . 48 5.2.2 Grafo da rela¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.3 Rela¸c˜oes de Compatibilidade e de Equivalˆencia . . . . . . . . . . . . . . . . . 50 5.3.1 Classes de equivalˆencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.3.2 Parti¸c˜oes e rela¸c˜oes de equivalˆencia . . . . . . . . . . . . . . . . . . . . 53 5.3.3 Classes de Compatibilidade . . . . . . . . . . . . . . . . . . . . . . . . 55 5.4 Rela¸c˜oes de Ordem Parcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.4.1 Diagrama de Hasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.4.2 M´aximos, m´ınimos, supremo, ´ınfimo, majorantes e minorantes . . . . 59 5.5 Fechos duma Rela¸c˜ao para uma Propriedade . . . . . . . . . . . . . . . . . . . 60 5.5.1 Fecho transitivo e percursos em grafos . . . . . . . . . . . . . . . . . . 62 5.5.2 Fecho transitivo duma rela¸c˜ao definida num conjunto finito . . . . . . 68 6 Grafos e Multigrafos 71 6.1 Grafos Dirigidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.1.1 Multigrafos dirigidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.1.2 Grafos, Percursos e rela¸c˜oes bin´arias . . . . . . . . . . . . . . . . . . . 74 6.2 Grafos N˜ao Dirigidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.2.1 Grafos Conexos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.2.2 Condi¸c˜ao necess´aria para um grafo ser conexo . . . . . . . . . . . . . . 78 6.3 ´Arvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.3.1 ´Arvores com ra´ız . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.4 Percursos Eulerianos e Hamiltonianos . . . . . . . . . . . . . . . . . . . . . . 82 6.5 Grafos Planares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.6 Isomorfismo de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 ii
  • 5. 6.7 Colora¸c˜ao de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.8 Grafos com Valores Associados aos Ramos . . . . . . . . . . . . . . . . . . . . 86 6.8.1 Determina¸c˜ao da distˆancia m´ınima . . . . . . . . . . . . . . . . . . . . 87 6.9 Grafos com S´ımbolos Associados aos Ramos . . . . . . . . . . . . . . . . . . . 93 iii
  • 6. iv
  • 7. Pref´acio Estes apontamentos tˆem por base material elaborado em anos anteriores para disciplinas da licenciatura em Ciˆencia de Computadores [5, 6, 7], o qual foi agora revisto e nalguns t´opicos completado para servir de apoio `a disciplina de Matem´atica para Ciˆencia de Computadores, no ano lectivo de 2005/06. N˜ao visam substituir a leitura da bibliografia recomendada pelos docentes e n˜ao cobrem actualmente todos os t´opicos abordados na disciplina. v
  • 8. vi
  • 9. Cap´ıtulo 1 Conjuntos Neste cap´ıtulo vamos essencialmente recordar ou introduzir alguma da nota¸c˜ao que ´e usada para conjuntos. Tomamos a no¸c˜ao de conjunto como primitiva, convencionando que um conjunto ´e constitu´ıdo por elementos – objectos materiais ou entes abstractos que tˆem alguma propriedade em comum (no caso extremo, a de pertencerem todos a esse conjunto). Os conjuntos podem ser vazios (i.e. sem elementos). Em geral, usamos letras mai´usculas para designar conjuntos e min´usculas para referir os seus elementos. Para indicar que a ´e um elemento do conjunto A escrevemos a ∈ A. Os conjuntos podem ser especificados em extens˜ao – exibindo todos os elementos que os constituem – ou indicando a propriedade que caracteriza os seus elementos – defini¸c˜ao em compreens˜ao. Por exemplo, {1, 2, 3, 4} e {n | n ∈ Z+∧n ≤ 4}. Nota¸c˜ao. Sejam A e B conjuntos. a ∈ A a pertence a A, a ´e elemento de A a /∈ A a n˜ao pertence a A A = B igualdade de conjuntos (qualquer que seja x, x ∈ A se e s´o se x ∈ B) A ⊆ B A contido em B, A subconjunto de B (qualquer que seja x, se x ∈ A ent˜ao x ∈ B) A ⊇ B A cont´em B, B ⊆ A A ⊂ B A contido propriamente em B, A subconjunto pr´oprio de B A ⊆ B ∧ A = B A ⊃ B A cont´em propriamente B A = B A ⊆ B ou B ⊆ A ∅ ou {} conjunto vazio c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 10. 1.1. OPERAC¸ ˜OES COM CONJUNTOS 2 O conjunto dos subconjuntos de A, representa-se por P(A) ou 2A. Qualquer con- junto A pertence ao seu conjunto de subconjuntos, isto ´e A ∈ P(A). Por exemplo, P({1, 2, 3}) = {∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}} O conjunto P({1, 2, 3}) tem 23 elementos. Tamb´em se pode verificar que P(P({1, 2, 3})) tem 223 elementos. Se A tem n elementos, P(A) tem 2n elementos. Nestes apontamentos, N representa o conjunto dos inteiros n˜ao negativos (incluindo assim tamb´em 0). N inteiros n˜ao negativos (em vez de N0) Z inteiros Q racionais R reais R+ 0 reais n˜ao negativos R+ reais positivos R− reais negativos Um conjunto A n˜ao vazio ´e finito se e s´o se existir uma bijecc˜ao de A em {x ∈ N | x < n} para algum n ∈ N. Nesse caso, n ´e o cardinal (n´umero de elementos) de A. Usamos |A| (ou, alternativamente, #A) para designar o cardinal de A. O cardinal do conjunto vazio ´e zero. A prop´osito de quest˜oes de nota¸c˜ao, ´e de salientar que {n | n ∈ N} {n}, com n ∈ N denotam conjuntos diferentes: o primeiro ´e N e o segundo ´e constitu´ıdo por um ´unico inteiro (que est´a a ser representado pela letra n). 1.1 Opera¸c˜oes com Conjuntos A intersec¸c˜ao de A com B representa-se por A ∩ B, e ´e o conjunto dos elementos que pertencem a ambos os conjuntos. A ∩ B = {x | x ∈ A e x ∈ B} A uni˜ao de A com B que se representa por A ∪ B, ´e o conjunto dos elementos que pertencem a pelo menos um dos conjuntos. A ∪ B = {x | x ∈ A ou x ∈ B} c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 11. 1.1. OPERAC¸ ˜OES COM CONJUNTOS 3 O complementar de B em A representa-se por A B, e ´e o conjunto dos elementos de A que n˜ao pertencem a B. A B = {x | x ∈ A e x /∈ B} Quando est´a implic´ıto um dado universo U, chama-se complementar de A, e representa- se por A, ao complementar de A em U, ou seja a U A. Exemplo 1 Vamos provar que A (B ∪ C) = (A B) ∩ (A C). Para tal vamos mostrar que x ∈ A (B ∪ C) ⇔ x ∈ (A B) ∩ (A C), qualquer que seja x. x ∈ A (B ∪ C) ⇔ x ∈ A ∧ x /∈ B ∪ C (por def. de diferen¸ca) ⇔ x ∈ A ∧ (x /∈ B ∧ x /∈ C) (por def. uni˜ao) ⇔ x ∈ A B ∧ x ∈ A C (por def. de diferen¸ca) ⇔ x ∈ (A B) ∩ (A C) (por def. intersec¸c˜ao) Exemplo 2 Quaisquer que sejam os conjuntos A, B ⊆ U, tem-se A ∪ B = A ∩ B. De facto, se x ∈ A ∪ B ent˜ao, por defini¸c˜ao de complementar, x /∈ A ∪ B. Logo, x /∈ A e x /∈ B. Mas, x /∈ A sse x ∈ A. E, x /∈ B sse x ∈ B. Ent˜ao, x ∈ A e x ∈ B. Donde, x ∈ A∩B. Mostr´amos assim que A ∪ B ⊆ A ∩ B. Reciprocamente, x ∈ A ∩ B =⇒ (x ∈ A ∧ x ∈ B) (por def. ∩) =⇒ (x /∈ A ∧ x /∈ B) (por def. complementar) =⇒ x /∈ (A ∪ B) (por def. ∪) =⇒ x ∈ A ∪ B (por def. complementar) ou seja, A ∪ B ⊇ A ∩ B. Exerc´ıcio 1.1.1 Suponha que os conjuntos indicados s˜ao subconjuntos do universo U. Sendo A, B e C subconjuntos de U quaisquer, mostre cada uma das propriedades: (a) A B = A ∩ B = B A (j) ∅ = U (r) U = ∅ (b) A B = ∅ sse A ⊆ B (k) A A = ∅ (s) A ∅ = A (c) A B = A sse A ∩ B = ∅ (l) A = A (t) A ∪ U = U (d) (A B) ∪ (B A) = (A ∪ B) (B ∩ A) (m) A ∪ A = U (u) A ∩ A = ∅ (e) (A ∩ B) ∩ C = A ∩ (B ∩ C) (n) A ∩ U = A (v) A ∩ A = A (f) (A ∪ B) ∪ C = A ∪ (B ∪ C) (o) A ∪ ∅ = A (g) (A ∪ B) ∩ C = (A ∩ C) ∪ (B ∩ C) (h) (A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C) (p) A ∪ B = A ∩ B (i) A (B ∪ C) = (A B) ∩ (A C) (q) A ⊆ B sse B ⊆ A c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 12. 1.1. OPERAC¸ ˜OES COM CONJUNTOS 4 Exemplo 3 A t´ıtulo de exemplo, vamos analisar a veracidade ou falsidade das afirma¸c˜oes seguintes e justific´a-la. 1. Qualquer que seja x ∈ Z, existe y ∈ Z tal que x ≤ y e x = y. ∀x ∈ Z ∃y ∈ Z (x ≤ y ∧ x = y) A afirma¸c˜ao ´e verdadeira porque, sendo o conjunto dos inteiros infinito, se x ´e inteiro, x + 1 tamb´em ´e um inteiro e x + 1 ´e superior a x. Ou seja, dado um x qualquer, se considerarmos que y ´e x + 1, satisfazemos a condi¸c˜ao (x ≤ y ∧ x = y). Note que y depender´a de x. 2. Existe y ∈ Z tal que para todo x ∈ Z se tem x ≤ y. ∃y ∈ Z ∀x ∈ Z x ≤ y A afirma¸c˜ao ´e falsa porque em particular se x fosse y+1 ent˜ao teriamos que ter y+1 ≤ y, que n˜ao ´e satisfaz´ıvel (j´a que ´e equivalente a 1 ≤ 0). 3. Existe um inteiro n˜ao negativo que n˜ao excede qualquer outro inteiro n˜ao negativo. ∃x ∈ Z+ 0 ∀y ∈ Z+ 0 x ≤ y A afirma¸c˜ao ´e verdadeira. O inteiro 0 ´e menor ou igual que cada um dos inteiros n˜ao negativos. Aqui, Z+ 0 denota o conjunto dos inteiros n˜ao negativos, o qual identific´amos tamb´em por N. 4. Existe x ∈ Z tal que x ´e maior do que qualquer outro inteiro y. ∃x ∈ Z ∀y ∈ Z x > y A afirma¸c˜ao ´e falsa (an´aloga `a 2). 5. Para todo A ⊆ Z, tem-se P(A) = {∅}. A afirma¸c˜ao ´e falsa, porque {1} ´e um subconjunto de Z e P({1}) = {∅, {1}} = {∅}. 6. Para todo A ⊆ Z, se A = ∅ ent˜ao P(A) = {∅}. A afirma¸c˜ao ´e verdadeira. S´o existe um subconjunto de Z que ´e vazio, e P(∅) = {∅}. Note que {∅} ´e um conjunto que tem um elemento. Esse elemento ´e ∅, ou seja, ´e o conjunto vazio. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 13. 1.1. OPERAC¸ ˜OES COM CONJUNTOS 5 7. Tem-se P(A) = ∅, para algum A ⊆ Z. ∃A (A ⊆ Z ∧ P(A) = ∅) A afirma¸c˜ao ´e falsa, porque qualquer que seja o subconjunto A de Z, o conjunto vazio ´e um elemento de P(A). 8. Quaisquer que sejam x, y ∈ Z, tem-se x ≤ y ou y ≤ x. ∀x ∈ Z ∀y ∈ Z (x ≤ y ∨ y ≤ x) Dizer que x ≤ y equivale a dizer que existe um inteiro n˜ao negativo z tal que y = x + z. ´E verdade que (x ≤ y ∨ y ≤ x), quaisquer que sejam os inteiros x e y. Como x − y ´e inteiro, quaisquer que sejam x e y, se x − y ´e n˜ao negativo, ent˜ao y ≤ x pois x = y + (x − y). Se x − y ´e negativo, ent˜ao y − x ´e um inteiro positivo, e como y = x + (y − x), tem-se x ≤ y. 9. Qualquer que seja A ⊆ Z, se A = {−1, 2, 3} ent˜ao 4 ∈ A. ∀A ( (A ⊆ Z ∧ A = {−1, 2, 3}) ⇒ 4 ∈ A) ) Falso. Existe um subconjunto de Z que ´e diferente de {−1, 2, 3} e que n˜ao tem o 4. Por exemplo, o conjunto vazio. 10. Quaisquer que sejam A, B ⊆ Z, se 5 ∈ A B ent˜ao 5 ∈ A. ∀A ∀B( (A ⊆ Z ∧ B ⊆ Z ∧ 5 ∈ A B) ⇒ 5 ∈ A ) A afirma¸c˜ao ´e verdadeira. Quaisquer que sejam os subconjuntos A e B de Z, tem-se 5 ∈ A B se e s´o se 5 ∈ A e 5 /∈ B. Logo, se 5 ∈ A B ent˜ao 5 ∈ A. 11. Para todo o x ∈ Z, e quaisquer que sejam A, B ⊆ Z, se x ∈ A B ent˜ao x ∈ A. A afirma¸c˜ao ´e verdadeira. A justifica¸c˜ao ´e semelhante `a dada para a afirma¸c˜ao anterior (claro que ´e necess´ario falar em x e n˜ao em 5!). 12. Existe x ∈ Z tal que x ∈ A B, quaisquer que sejam A, B ⊆ Z. Esta afirma¸c˜ao pode ser traduzida pela express˜ao l´ogica ∃x (x ∈ Z ∧ ( ∀A ∀B ( (B ⊆ Z ∧ A ⊆ Z) ⇒ x ∈ A B) )) a qual escrevemos por vezes como ∃x ∈ Z ∀A ⊆ Z ∀B ⊆ Z (x ∈ A B) c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 14. 1.1. OPERAC¸ ˜OES COM CONJUNTOS 6 que ´e falsa. Quaisquer que sejam os conjuntos A e B se A = B ent˜ao AB = ∅. Assim, se tomarmos, por exemplo, A = B = {1}, os conjuntos A e B s˜ao subconjuntos de Z e n˜ao existe qualquer inteiro x tal que x ∈ A B. 13. 2 + 2 = 4 ou √ 2 ∈ Z. A afirma¸c˜ao ´e verdadeira porque embora √ 2 /∈ Z, ´e verdade que 2 + 2 = 4. 14. Se 2 + 2 = 4 ent˜ao √ 2 ∈ Z. A afirma¸c˜ao ´e equivalente a “2 + 2 = 4 ou √ 2 ∈ Z”. 15. Se √ 2 ∈ Z ent˜ao 2 + 2 = 4. A afirma¸c˜ao ´e equivalente a “ √ 2 /∈ Z ou 2 + 2 = 4”, e como √ 2 /∈ Z, a afirma¸c˜ao ´e verdadeira. 16. √ 2 ∈ Z ou 2 + 2 = 4. A afirma¸c˜ao ´e verdadeira porque √ 2 ∈ Z. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 15. Cap´ıtulo 2 Representa¸c˜ao de N´umeros em Computador Do mesmo modo que “5692 segundos”, “94 minutos e 52 segundos”, “1 hora, 34 minutos e 52 segundos” s˜ao designa¸c˜oes ou representa¸c˜oes diferentes da mesma entidade, tamb´em 5692(10), 13074(8) e 1011000111100(2) o s˜ao. De facto, 1 34 52(60) ≡ 1h34 52 ≡ 1 × 602 + 34 × 601 + 52 × 600 5 6 9 2(10) ≡ 5 × 103 + 6 × 102 + 9 × 101 + 2 × 100 1 3 0 7 4(8) ≡ 1 × 84 + 3 × 83 + 0 × 82 + 7 × 81 + 4 × 80 1 0 1 1 0 0 0 1 1 1 1 0 0(2) ≡ 1 × 212 + 0 × 211 + 1 × 210 + 1 × 29 + 0 × 28 + 0 × 27 + 0 × 26 + 1 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 0 × 21 + 0 × 20 dizendo-se que 60, 10, 8 e 2 s˜ao as bases de numera¸c˜ao, respectivas. Habitualmente, escreve-se 5692 em vez de 5692(10), porque a base mais usual para representa¸c˜ao de inteiros ´e a base 10, designada por decimal. As bases 8 e 2 s˜ao designadas por octal e bin´aria. Se considerarmos as potˆencias de 2, 212 211 210 29 28 27 26 25 24 23 22 21 20 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 podemos observar que 5692 = 4096+1596 = 4096+(1024+572) = 4096+1024+(512+60) = . . . = 4096 + 1024 + 512 + 32 + 16 + 8 + 4 = 1011000111100(2). Analogamente, se considerarmos as potˆencias de 3, 38 37 36 35 34 33 32 31 30 6561 2187 729 243 81 27 9 3 1 c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 16. 2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 8 podemos verificar que 5692 = 21210211(3). De facto, 5692 = 2 × 2187 + 1318 = 2 × 2187 + (1 × 729 + 589) = 2 × 2187 + 1 × 729 + (2 × 243 + 103) = . . . = 2 × 2187 + 1 × 729 + 2 × 243 + 1 × 81 + 2 × 9 + 1 × 3 + 1 = 21210211(3). 2.1 Sistema de Representa¸c˜ao Posicional Num sistema de numera¸c˜ao de base b usam-se b s´ımbolos diferentes para b d´ıgitos (de 0 a b − 1). Os n´umeros s˜ao representados por uma sequˆencia de d´ıgitos. Os d´ıgitos na base 10 s˜ao 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Os d´ıgitos na base 2 s˜ao 0 e 1, e normalmente s˜ao designados por bits. Por exemplo, 1011102 = 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 Se a = rmbm + rm−1bm−1 + . . . + r2b2 + r1b1 + r0b0 com rm = 0 e 0 ≤ ri ≤ b − 1 para 0 ≤ i ≤ m ent˜ao a ≡ rm . . . r2r1r0 (b) ´e a representa¸c˜ao de a na base b. Os coeficientes r0, r1, r2, . . . rm chamam-se d´ıgitos de repre- senta¸c˜ao de a na base b, sendo r0 o d´ıgito menos significativo e rm o d´ıgito mais significativo. A representa¸c˜ao ´e ´unica, o que ´e consequˆencia da unicidade do quociente e resto da divis˜ao inteira. Proposi¸c˜ao 1 (divis˜ao euclideana de inteiros) Quaisquer que sejam a ∈ Z e b ∈ Z+ existe um e um s´o q ∈ Z e um e um s´o r ∈ Z tal que b = aq + r e 0 ≤ r < b. A q chama-se quociente e a r resto da divis˜ao inteira de a por b, sendo importante a condi¸c˜ao 0 ≤ r < b para garantir a unicidade. Corol´ario 1.1 Quaisquer que sejam a ∈ Z+ e b ∈ Z+ {1}, existem inteiros ´unicos r0, r1, r2, . . . rm tais que a = rmbm + rm−1bm−1 + . . . + r2b2 + r1b1 + r0b0, rm = 0 e 0 ≤ ri ≤ b − 1 para 0 ≤ i ≤ m. Prova: Sejam a e b inteiros com a > 0 e b > 1. Tem-se ou a < b ou a ≥ b. Se a < b ent˜ao a = 0b + a. Portanto, 0 < r0 = a. Se a ≥ b ent˜ao, por defini¸c˜ao de divis˜ao inteira, existem q0 e r0 ´unicos tais que a = bq0 +r0, com 0 ≤ r0 < b. Se q0 < b, toma-se r1 = q0 e obtem-se a = r1b + r0. Se q0 ≥ b, ent˜ao o processo repete-se agora para q0. Ou seja, q0 = bq1 + r1, com 0 ≤ r1 < b. Logo, a = bq0 + r0 = b(bq1 + r1) + r0 = b2 q1 + br1 + r0 c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 17. 2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 9 Se q1 < b, toma-se r2 = q0 e obtem-se a = b2r2 +br1 +r0. Se q1 ≥ b, ent˜ao o processo repete-se agora para q1, e sucessivamente. O processo termina porque a > q0 > q1 > . . . e qualquer qi ´e um inteiro n˜ao negativo. Esta prova indica um algoritmo para determina¸c˜ao da representa¸c˜ao dum inteiro a numa base b. Exemplo 4 Tem-se 125(10) = 53 = 1000(5) = 26 + 25 + 24 + 23 + 22 + 20 = 1111101(2) = 175(8) = 7D(16). De facto, 125 5 0 25 5 r0 0 5 5 r1 0 1 r2 r3 125 2 1 62 2 r0 0 31 2 r1 1 15 2 r2 1 7 2 r3 1 3 2 r4 1 1 r5 r6 125 8 5 15 8 r0 7 1 r1 r2 125 16 13 7 r0 r1 No entanto, quando se conhecem potˆencias da base, pode ser mais f´acil determinar a representa¸c˜ao por outro m´etodo. Por exemplo, para a base 2, 46(10) = 32(10) + 8(10) + 4(10) + 2(10) = 101110(2) enquanto se se aplicar o algoritmo dado pela prova anterior teria 46 2 0 23 2 r0 1 11 2 r1 1 5 2 r2 1 2 2 r3 0 1 r4 r5 46(10) = 23 × 2 + 0 = (11 × 2 + 1) × 2 + 0 = ((5 × 2 + 1) × 2 + 1) × 2 + 0 = (((2 × 2 + 1) × 2 + 1) × 2 + 1) × 2 + 0 = ((((2 × 1 + 0) × 2 + 1) × 2 + 1) × 2 + 1) × 2 + 0 = 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 = 101110(2) c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 18. 2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 10 Pode interessar tamb´em saber qual a representa¸c˜ao decimal dum inteiro dado numa base b. Para a obter, bastar´a aplicar a defini¸c˜ao e efectuar os c´alculos na base 10. 101110(2) = 1 × 25 + 0 × 24 + 1 × 23 + 1 × 22 + 1 × 21 + 0 × 20 = 32 + 8 + 4 + 2 = 46(10) 101110(3) = 1 × 35 + 0 × 34 + 1 × 33 + 1 × 32 + 1 × 31 + 0 × 30 = 162 + 27 + 9 + 3 = 201(10) Para al´em da base 2, s˜ao bastante usadas em Computa¸c˜ao as bases 8 (octal) e 16 (hexa- decimal). Os d´ıgitos em octal s˜ao 0, 1, 2, 3, 4, 5, 6 e 7. Embora os restos da divis˜ao por 16 sejam 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,. . . , 15, por conven¸c˜ao, os d´ıgitos em hexadecimal a partir de 10 s˜ao representados pelas letras mai´usculas de A a F. Deste modo n˜ao haver´a qualquer ambiguidade de representa¸c˜ao (por exemplo, fica claro que o hexadecimal 15 designa o decimal 1×16+5 e F o decimal 15). Os n´umeros representados na base octal s˜ao por vezes indexados por (o), por exemplo 235(o), e os representados na base hexadecimal por (h), por exemplo F15A(h). Designa¸c˜ao Base D´ıgitos Bin´ario 2 0 a 1 Octal 8 (=23) 0 a 7 Hexadecimal 16 (=24) 0 a 9, A, B, C, D, E, F Decimal 10 0 a 9 Exemplo 5 A sequˆencia 78412 n˜ao pode representar nenhum inteiro na base 4 porque 7, 8 e 4 n˜ao s˜ao d´ıgitos base 4. A sequˆencia 001231 n˜ao ´e representa¸c˜ao numa base de numera¸c˜ao, no sentido acima definido, porque teria zeros n˜ao significativos. A sequˆencia 123100 pode representar um inteiro em qualquer base b superior a 4. Exerc´ıcio 2.1.1 Converter para bin´ario: 153(10), 153(6), 153(8), 153(16). Exerc´ıcio 2.1.2 Converter para hexadecimal: 153(10), 151323(10), 153(8), 1010101111(2) . Exerc´ıcio 2.1.3 Converter para octal: 1123(4), 151323(10), 153(8), 1010101111(2) . Exerc´ıcio 2.1.4 Converter para a base 251 e 666 os seguintes n´umeros em decimal: 1383, 1498, 1500, 1580, 1640 Exerc´ıcio 2.1.5 Represente x, xn e xn − 1 na base x, para x > 1 e n ∈ N. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 19. 2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 11 2.1.1 Rela¸c˜ao entre bin´ario, octal e hexadecimal Seja por exemplo, 101011110(2) um bin´ario que se pretende converter para octal. Como foi visto, o inteiro que esse bin´ario representa ´e 1 × 28 + 0 × 27 + 1 × 26 + 0 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 1 × 2 + 0 ou seja 350. A representa¸c˜ao octal correspondente pode ser obtida agrupando os d´ıgitos bin´arios 3 a 3: uma vez que 8 = 23 e 82 = 26, tem-se 26 (1×22 +0×2+1×2)+23 (0×22 +1×2+1)+(1×22 +1×2+0) = 82 ×5+8×3+6 = 536(2) Em geral se ak . . . a5a4a3a2a1a0(2), sendo k ≥ 0, representa o inteiro ak2k + . . . + a525 + a424 + a323 + a222 + a121 + a020 ent˜ao a representa¸c˜ao em octal do mesmo inteiro pode ser obtida da forma descrita: ak2k + . . . + 23 (a522 + a421 + a320 ) + (a222 + a121 + a020 ) = ak2k + . . . + 8(a522 + a421 + a320 ) + (a222 + a121 + a020 ) Notar que na express˜ao resultante, qualquer potˆencia de 8 tem por coeficiente ai+222 + ai+12 + ai para algum i, o qual ´e sempre n˜ao negativo e inferior a 8, podendo assim ser d´ıgito da representa¸c˜ao octal. A cada d´ıgito octal correspondem 3 d´ıgitos em bin´ario. Do mesmo modo, a cada d´ıgito hexadecimal correspondem 4 d´ıgitos em bin´ario. Assim, para converter um bin´ario a hexadecimal, agrupam-se os seus d´ıgitos em grupos de 4 (da direita para a esquerda) correspondendo a cada um desses grupos um d´ıgito hexadecimal. Por exemplo, 101011110(2) ⇒ 1 | 0101 | 1110 ⇒ 1 | 5 | E ⇒ 15E(h) Para converter um bin´ario a octal procede-se de modo idˆentico mas formando grupos de 3. Por exemplo, 101011110(2) ⇒ 101 | 011 | 110 ⇒ 5 | 3 | 6 ⇒ 536(o) Inversamente, se se pretender converter de hexadecimal a bin´ario basta associar a cada um dos d´ıgitos hexadecimal o grupo de 4 d´ıgitos bin´arios correspondente. Por exemplo, 3AC3A(h) ⇒ 0011 | 1010 | 1100 | 0011 | 1010 ⇒ 11 | 1010 | 1100 | 0011 | 1010 ⇒ 111010110000111010(2) Notar a elimina¸c˜ao dos zeros n˜ao significativos. O que se acaba de ilustrar ´e um caso particular da proposi¸c˜ao seguinte. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 20. 2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 12 Proposi¸c˜ao 2 Se z ´e um inteiro positivo, a cada d´ıgito (com poss´ıvel excep¸c˜ao do mais signi- ficativo) da representa¸c˜ao de z na base bn corresponde um grupo de n d´ıgitos na representa¸c˜ao de z na base b, qualquer que seja n inteiro positivo. Mais concretamente, se akak−1 . . . atnatn−1 . . . a2na2n−1 . . . anan−1 . . . a1a0 com k ≥ 0 ´e a representa¸c˜ao na base b de um inteiro positivo z ent˜ao, a representa¸c˜ao do mesmo inteiro na base bn ´e wtwt−1 . . . w1w0 sendo t+1 o n´umero de blocos de n d´ıgitos da representa¸c˜ao de z na base b (podendo o ´ultimo ser completado por zeros n˜ao significativos), e wi (i ≤ t) o d´ıgito da base bn que representa o inteiro a2in−1 . . . ain+1ain(b) (representa¸c˜ao base b a menos de zeros n˜ao significativos). Exemplo 6 Por exemplo, para converter 100313210(4) para a base 16, agrupam-se os d´ıgitos 2 a 2, da direita para a esquerda, pois 16 = 42. 100313210(4) = 01 | 00 | 31 | 32 | 10 = 10DE4(16) Exerc´ıcio 2.1.6 Repita os exerc´ıcios 2.1.1 a 2.1.3. Exerc´ıcio 2.1.7 Mostre a proposi¸c˜ao anterior. Comece por mostrar que wtwt−1 . . . w1w0 conforme descrito pode ser representa¸c˜ao base bn de z; use em seguida o facto da representa¸c˜ao numa base ser ´unica para concluir que wtwt−1 . . . w1w0 ´e a representa¸c˜ao de z. Mostre depois que se wtwt−1 . . . w1w0 representa z na base bn, a representa¸c˜ao de z na base b ´e akak−1 . . . atnatn−1 . . . a2na2n−1 . . . anan−1 . . . a1a0 2.1.2 Adi¸c˜ao e multiplica¸c˜ao na base b Recorde como se adicionam dois inteiros representados na base 10, calculando por exemplo 987654 + 73561. 987654 + 73561 . . . 5 (vai 0) 987654 + 73561 . . . 15 (vai 1) 987654 + 73561 . . . 215 (vai 1) 987654 + 73561 . . . 1215 (vai 1) 987654 + 73561 . . . 61215 (vai 1) 987654 + 73561 . . . 061215 (vai 1) 987654 + 73561 1061215 c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 21. 2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 13 Algoritmo para Adi¸c˜ao (base 10). Se x e y s˜ao inteiros positivos representados na base 10 por xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente ent˜ao a representa¸c˜ao na base 10 de x + y, digamos spsp−1 . . . s1s0, pode ser obtida da forma seguinte. xkxk−1 . . . x1x0 + ymym−1ym−2 . . . y1y0 . . . s0 Caso x0 + y0 < 10, toma-se s0 = x0 + y0 e repete-se o processo para os d´ıgitos seguintes. Sen˜ao, s0 ´e tal que x0 + y0 = 1s0, adicionando-se 1 a x1 + y1 repetindo-se o processo (global) para os d´ıgitos seguintes. Quando k < m (respectivamente m < k) pode-se considerar xi = 0, i ≥ k (respectivamente yi = 0, i ≥ m). Notar que p = max(k, m) ou p = max(k, m) + 1 sendo neste ´ultimo caso sp = 1. Adi¸c˜ao (base 3). 2102(3) + 21(3) = (2 × 33 + 1 × 32 + 0 × 31 + 2 × 30) + (2 × 31 + 1 × 30) = 2 × 33 + 1 × 32 + (0 + 2) × 31 + (2 + 1) × 30 = 2 × 33 + 1 × 32 + (0 + 2) × 31 + (1 × 3 + 0) × 30 = 2 × 33 + 1 × 32 + (0 + 2 + 1) × 31 + 0 × 30 = 2 × 33 + (1 + 1) × 32 + 0 × 31 + 0 × 30 = 2 × 33 + 2 × 32 + 0 × 31 + 0 × 30. 2102(3) + 21(3) . . . 0(3) (vai 1) 2102(3) + 21(3) . . . 00(3) (vai 1) 2102(3) + 21(3) . . . 200(3) (vai 0) 2102(3) + 21(3) 2200(3) Exerc´ıcio 2.1.8 Justifique que se x e y s˜ao inteiros positivos representados na base b por xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente ent˜ao spsp−1 . . . s1s0, a representa¸c˜ao na base b de x+y, pode ser obtida por um processo an´alogo ao descrito acima, ou seja, seguindo o algoritmo habitual. Comece por notar que quando soma xi com yi o resultado ´e sempre menor ou igual que 2b − 2, e portanto tanto xi + yi como xi + yi + 1 se representa como 0si ou 1si (pelo que ou “vai 0” ou “vai 1”), qualquer que seja i. Depois, use a defini¸c˜ao de representa¸c˜ao na base b, `a semelhan¸ca do que se fez acima para b = 3. Os algoritmos usuais para adi¸c˜ao e multiplica¸c˜ao base 10 s˜ao v´alidos quando se usam representa¸c˜oes em qualquer outra base b, embora sejam obviamente diferentes as tabuadas dessas opera¸c˜oes se escrevermos os resultados na base b. O mesmo se pode dizer para a subtrac¸c˜ao (quando o aditivo ´e maior do que subtractivo) e para a divis˜ao inteira. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 22. 2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 14 Tabuadas de adi¸c˜ao e multiplica¸c˜ao para bin´ario: +2 0 1 0 0 1 1 1 10 ×2 0 1 0 0 0 1 0 1 Tabuadas de adi¸c˜ao e multiplica¸c˜ao para base 3: +3 0 1 2 0 0 1 2 1 1 2 10 2 2 10 11 ×3 0 1 2 0 0 0 0 1 0 1 2 2 0 2 11 Tabuadas de adi¸c˜ao e multiplica¸c˜ao para octal: +8 0 1 2 3 4 5 6 7 0 0 1 2 3 4 5 6 7 1 1 2 3 4 5 6 7 10 2 2 3 4 5 6 7 10 11 3 3 4 5 6 7 10 11 12 4 4 5 6 7 10 11 12 13 5 5 6 7 10 11 12 13 14 6 6 7 10 11 12 13 14 15 7 7 10 11 12 13 14 15 16 ×8 0 1 2 3 4 5 6 7 0 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 7 2 0 2 4 6 10 12 14 16 3 0 3 6 11 14 17 22 25 4 0 4 10 14 20 24 30 34 5 0 5 12 17 . . . . . . . . . . . . . . . 6 0 6 . . . . . . . . . . . . . . . . . . . . . . . . 7 0 7 . . . . . . . . . . . . . . . . . . . 61 Exerc´ıcio 2.1.9 Complete a tabuada de multiplica¸c˜ao base 8 e determine as tabelas para a base hexadecimal. Assim, por exemplo, 1021(3) × 211(3) = 1000201(3), ou seja, 34(10) × 22(10) = 748(10), porque: 1 0 2 1(3) × 2 1 1(3) 1 0 2 1 1 0 2 1 + 2 1 1 2 1 0 0 0 2 0 1(3) 3 4(10) × 2 2(10) 6 8 + 6 8 7 4 8(10) `A esquerda, todos os valores interm´edios est˜ao representados na base 3 e `a direita na base 10 (visando recordar o algoritmo da multiplica¸c˜ao e estabelecer a compara¸c˜ao). c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 23. 2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 15 Exerc´ıcio 2.1.10 Calcule: (i) 1110010(2) + 111001111(2) em bin´ario. (ii) 1F5(h) + 111001111(2) em hexadecimal. (iii) 1330(4) + 123(4) em octal. (iv) 1F5(h) + ABCD(h) + 1FB(h) em hexadecimal. (v) ABCD(h) − 1FB(h) em hexadecimal. (vi) 73542(o) × 27(10) em octal. (vii) 73542(o)/27(10) em octal. (viii) 111000010(2) /111(2) em bin´ario. 2.1.3 Representa¸c˜ao de n´umeros com um n´umero fixo de d´ıgitos Num computador cada inteiro ´e representado por um n´umero fixo de bits. Em 8 bits, 13 seria representado por 00001101. Isto ´e, introduzem-se 0’s `a esquerda sempre que o n´umero de bits da representa¸c˜ao do inteiro seja menor que o n´umero de bits que se fixou. Se n representar o n´umero de bits que se fixou para a representa¸c˜ao, os bits s˜ao numerados da esquerda para a direita por bitn−1, bitn−2, . . . , bit1 e bit0. O bitn−1 diz-se o bit mais significativo e bit0 ´e o menos significativo. Quando se fixa o n´umero de bits da representa¸c˜ao, limita-se tamb´em os valores que podem ser representados. Se, por exemplo, o n´umero de bits for 8 ent˜ao o maior inteiro positivo que se pode representar ´e: 1 1 1 1 1 1 1 1 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 cujo valor ´e 27 × 1 + 26 × 1 + 25 × 1 + 24 × 1 + 23 × 1 + 22 × 1 + 21 × 1 + 20 × 1 = 255 = 28 − 1 Em geral, com n bits podemos representar n´umeros inteiros positivos de 0 a 2n − 1. Proposi¸c˜ao 3 O maior inteiro positivo que se consegue representar na base b com n d´ıgitos ´e bn − 1. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 24. 2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 16 Prova: Suponhamos que A ´e representado com n d´ıgitos na base b por an−1an−2 . . . a1a0 com ai ∈ {0, . . . , b − 1}. Ent˜ao, A = an−1bn−1 + an−2bn−2 . . . a1b1 + a0b0 = n−1 i=0 aibi Ora, n−1 i=0 aibi ≤ n−1 i=0 (b − 1)bi = (b − 1) n−1 i=0 bi = (b − 1) b0 − b × bn−1 1 − b (soma de termos de progress˜ao geom´etrica) = (b − 1) 1 − bn 1 − b = bn − 1 Observa¸c˜ao: n−1 i=0 ui ´e uma nota¸c˜ao abreviada para u0 + u1 + · · · + un−1, podendo-se ler “somat´orio para i desde 0 at´e n − 1 de ui”. Exerc´ıcio 2.1.11 Qual ´e o n´umero m´ınimo de bits necess´ario para representar 1125? Qual o valor m´aximo que pode ser representado com esse n´umero de bits? Normalmente o n´umero de bits usados s˜ao 8, 16, 32 ou 64. Com 8 bits podemos representar inteiros entre 0 e 255, com 16 bits entre 0 e 65535, com 32 bits entre 0 a 4294967295, etc. 2.1.4 Representa¸c˜ao de n´umeros negativos Para representar n´umeros inteiros positivos e negativos numa base b e com um n´umero fixo de d´ıgitos ´e necess´ario codificar o sinal e encontrar um processo eficiente de determinar se um n´umero ´e positivo ou negativo. Normalmente ´e reservado um d´ıgito para indicar o sinal. Por exemplo, em n d´ıgitos, sendo A = an−1an−2 . . . a1a0(b), se an−1 = 0 ent˜ao A ´e positivo, se an−1 = b − 1 o n´umero ´e negativo. Vamos considerar trˆes formas introduzidas para representar n´umeros inteiros positivos e negativos e que obedecem `a condi¸c˜ao de sinal apresentada. Vamos supor que a base ´e 2 e que o n´umero de d´ıgitos ´e n, embora os resultados possam ser generalizados para qualquer base b. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 25. 2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 17 Representa¸c˜ao com bit de sinal. Reserva-se o bit mais `a esquerda para o sinal e os restantes para o m´odulo do n´umero. n bits n−1 n−2 . . . . . . . . 0 sinal m´odulo O bit de sinal ´e 0 para os positivos e ´e 1 para os negativos. Assim, um n´umero positivo ´e da forma A = 0an−2 . . . a1a0 e um negativo ´e da forma A = 1an−2 . . . a1a0. Com n bits podemos representar n´umeros positivos de 0 a 2n−1 − 1 e negativos −(2n−1 − 1) a 0. As representa¸c˜oes de dois n´umeros com o mesmo m´odulo diferem apenas no bit de sinal. Se n = 3 temos o quadro seguinte: Valor 0 1 2 3 −0 −1 −2 −3 Representa¸c˜ao com bit de sinal 000 001 010 011 100 101 110 111 Podemos observar que zero tem duas representa¸c˜oes: +0 e −0. Para efectuar adi¸c˜oes de n´umeros com sinais diferentes ´e necess´ario primeiro determinar qual ´e o maior e qual o sinal do resultado. O mesmo problema surge para a subtrac¸c˜ao, a qual pode ser tratada como a adi¸c˜ao associando o sinal negativo ao subtraendo, x − y = x + (−y). Representa¸c˜ao em Complemento para 1. A utiliza¸c˜ao desta representa¸c˜ao para inteiros apresenta o mesmo problema da anterior, isto ´e, zero ter´a duas representa¸c˜oes +0 e −0. Para uma representa¸c˜ao em n bits, chama-se complemento para 1 de A ao valor (2n − 1) − A. O bit mais signficativo d´a indica¸c˜ao sobre o sinal do n´umero (se for 1, o n´umero ´e negativo). O n´umero negativo −x ser´a representado por (2n − 1) − x. Por exemplo, para n = 3, temos o quadro seguinte: Valor +0 +1 +2 +3 −3 −2 −1 −0 Complemento para 1 000 001 010 011 100 101 110 111 Estas representa¸c˜oes podem ser obtidas por troca de 1’s por 0’s e 0’s por 1’s na repre- senta¸c˜ao de x em n bits, o que resulta de 2n − 1 ser representado por n 1’s. Por exemplo, -14 ´e representado em complemento para 1 em 8 bits por: 1 1 1 1 1 1 1 1 − 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 1 c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 26. 2.1. SISTEMA DE REPRESENTAC¸ ˜AO POSICIONAL 18 Representa¸c˜ao em Complemento para 2. Neste caso, zero ter´a uma s´o representa¸c˜ao: Exactamente metade dos n´umeros representados s˜ao n˜ao negativos e a outra metade n´umeros negativos. De 0 a 2n−1 −1 encontram-se os n´umeros n˜ao negativos e de 2n−1 a 2n −1 n´umeros negativos. Para os positivos a representa¸c˜ao coincide com a representa¸c˜ao anterior. Os n´umeros nega- tivos s˜ao complementos para a base. Por defini¸c˜ao, o complemento para 2 de A numa representa¸c˜ao de n bits ´e o inteiro 2n − A. Exemplo 7 Para n = 3 ent˜ao -1 ´e representado por 111 pois 23 − 1 = 7. Se n = 8, o inteiro -1 ´e representado por 11111111 em complemento para 2. Nnuma representa¸c˜ao em 8 bits usando complemento para 2 o inteiro −3 ´e o bin´ario correspondente a 28 − 3, ou seja 253 = 11111101. Em resumo, temos o quadro seguinte para n = 3: Valor 0 +1 +2 +3 −4 −3 −2 −1 Complemento para 2 000 001 010 011 100 101 110 111 Usando a defini¸c˜ao de complemento para 2, pode-se concluir que 2n−1 representa −2n−1 pois 2n − 2n−1 = 2n−1. Por outro lado, 2n − 1 representa −1. Proposi¸c˜ao 4 No sistema de representa¸c˜ao com n bits e complemento para 2 os valores poss´ıveis dos inteiros represent´aveis variam de −2n−1 a 2n−1 − 1. De 0 a 2n−1 − 1 tem-se n´umeros n˜ao negativos e de 2n−1 a 2n − 1 n´umeros negativos. Para al´em de s´o haver um zero, neste caso todos os negativos tˆem 1 como bit mais significativo, o qual funciona assim como bit de sinal. As adi¸c˜oes podem ser efectuadas sem analisar o sinal dos operandos e nas subtrac¸c˜oes basta calcular o complemento para 2 do subtraendo e adicionar o valor resultante ao subtractivo, como se ver´a adiante. Para determinar representa¸c˜ao em complemento para 2 dum n´umero ´e ´util observar a sua rela¸c˜ao com a representa¸c˜ao em complemento para 1. Como 2n − A = (2n − 1 − A) + 1 e 2n − 1 − A ´e a representa¸c˜ao em complemento para 1, podemos obter a representa¸c˜ao em complemento para 2 complementando todos os d´ıgitos de A (isto ´e trocando os uns com os zeros e os zeros com os uns) e adicionando depois uma unidade. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 27. 2.2. ADIC¸ ˜AO E SUBTRACC¸ ˜AO EM N BITS 19 Exemplo 8 Para determinar a representa¸c˜ao de -17 em complemento para 2 em 8 bits, toma-se 00010001, troca-se 0’s por 1’s, obtendo 11101110, e soma-se 1, resultando 11101111. Inversamente, se se pretender determinar o valor (em decimal) do inteiro que ´e dado em complemento para 2 por A = an−1an−2 . . . a1a0, basta considerar que a parcela an−12n−1 ´e negativa. Por exemplo, 110(2) = 1 × (−22 ) + 1 × 21 + 0 × 20 = −4 + 2 + 0 = −2(10) Exerc´ıcio 2.1.12 Represente em complemento para 2 e com 8 bits os n´umeros inteiros se- guintes: (i) 25, -25, 41, 56, 19, -31, -87; (ii) a soma dos anteriores e verifique se o resultado de somar as representa¸c˜oes est´a correcto. Exerc´ıcio 2.1.13 Suponha que a representa¸c˜ao em complemento para dois com 4 d´ıgitos de um inteiro ´e 1101. Como ´e a representa¸c˜ao com: (i) 6 d´ıgitos (ii) 8 d´ıgitos (iii) n d´ıgitos, com n ≥ 4. Exerc´ıcio 2.1.14 Suponha agora que, em 4 d´ıgitos, a representa¸c˜ao em complemento para dois ´e 0101. Como responderia `as al´ıneas anteriores? Em geral, dado um inteiro x represen- tado em n d´ıgitos como procederia para obter a sua representa¸c˜ao com mais d´ıgitos? 2.2 Adi¸c˜ao e Subtrac¸c˜ao em n Bits 2.2.1 Adi¸c˜ao e subtrac¸c˜ao bin´aria de inteiros n˜ao negativos • Adi¸c˜ao: Segue o algoritmo habitual de adi¸c˜ao bin´aria; se se tiver uma representa¸c˜ao de m bits e a soma for superior a 2m − 1 (o maior inteiro positivo com m bits) diz-se que h´a transporte (carry); Por exemplo: a soma em 8-bits dos inteiros positivos 10010000 e 11111101 ´e 10001101, o que est´a errado (tem transporte 1). • Subtrac¸c˜ao: Segue algoritmo habitual de subtrac¸c˜ao bin´aria; se o valor da diferen¸ca for inferior a zero, diz-se que h´a transporte (borrow); Por exemplo: a diferen¸ca em 8-bits 10010000 − 11111101 = 10010011 o que est´a errado (tem transporte 1). c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 28. 2.2. ADIC¸ ˜AO E SUBTRACC¸ ˜AO EM N BITS 20 2.2.2 Adi¸c˜ao de inteiros em complemento para 2 Se os inteiros s˜ao n˜ao negativos, a soma ´e calculada pelo algoritmo habitual. Se a repre- senta¸c˜ao tiver m bits e a soma for superior a 2m−1 − 1 (o maior inteiro positivo com m bits num sistema de complemento para 2) diz-se que h´a overflow, sendo indica¸c˜ao de que o valor obtido est´a errado. Por exemplo: a soma em 8-bits e complemento para 2 de 01111111 com 00000001 ´e 10000000 ou seja, a soma de +127 com +1 ´e −128(!). Neste caso, h´a overflow. Se os inteiros s˜ao ambos negativos (em complemento para 2) a soma ´e calculada pelo algoritmo habitual ”desprezando-se”o transporte. Se se usa uma representa¸c˜ao em m bits, o ”desprezar”o transporte corresponde a subtrair ao resultado obtido 2m. Basta notar que quando se efectua (−x) + (−y) se pretende obter o complemento para 2 de x + y, isto ´e 2m − (x + y). A rela¸c˜ao desse n´umero com os complementos para 2 de x e y ´e 2m − (x + y) = (2m − x) + (2m − y) − 2m. Ou seja, para obter a representa¸c˜ao em complemento para 2 de (−x) + (−y) adicionam-se as representa¸c˜oes de (−x) e (−y) e subtrai-se 2m. Se a representa¸c˜ao tiver m bits e a soma for inferior a −2m−1 (o menor inteiro negativo com m bits num sistema de complemento para 2) diz-se que h´a underflow, sendo indica¸c˜ao de que o valor obtido est´a errado. Por exemplo: a soma em 8-bits e complemento para 2 de 10000000 com 11111111 seria 01111111 ou seja, −128 + (−1) = +127 (!). Neste caso, h´a underflow. Analogamente, a soma dum inteiro positivo com um inteiro negativo ´e o bin´ario correspon- dente `a adi¸c˜ao das representa¸c˜oes dos operandos, ”desprezando-se”o transporte se o houver. N˜ao haver´a overflow nem underflow. 2.2.3 Subtrac¸c˜ao de inteiros em complemento para 2 A subtrac¸c˜ao bin´aria de inteiros representados em complemento para 2 pode-se reduzir `a adi¸c˜ao de inteiros. Exemplos (-x)-(-y) = (-x)+y 10010000-11111101=10010000+00000011=10010011 (-x)-y=(-x)+(-y) 10010000-00000011=10010000+11111101=10001101 y-(-x)=y+x 00000011-10010000=00000011+ 01110000=01110011 y-x=y+(-x) 00000011-00010000=00000011+11110000=11110011 Exerc´ıcio 2.2.1 Quais das seguintes somas est˜ao correctas (se truncadas a 8 bits) caso as representa¸c˜oes indicadas sejam representa¸c˜oes em complemento para 2 e caso sejam repre- senta¸c˜oes s´o para inteiros n˜ao negativos? c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 29. 2.3. REPRESENTAC¸ ˜AO EM V´IRGULA FIXA 21 negativos negativo e positivo positivos 10010000 + 11111101 1 10001101 00010000 + 11111111 1 00001111 00010000 + 00111101 0 01001101 positivos negativos 01111010 + 01110001 0 11101011 < 0 10000110 + 10001111 1 00010101 > 0 overflow underflow 2.3 Representa¸c˜ao em V´ırgula Fixa A representa¸c˜ao posicional de inteiros pode ser generalizada para representar n´umeros racio- nais considerando-se potˆencias negativas da base. Por exemplo, na base 10: 344.45 = 3 × 102 + 4 × 101 + 4 × 100 + 4 × 10−1 + 5 × 10−2 Podemos ainda escrever: 344.45 = 34445. × 10−2 = (3 × 104 + 4 × 103 + 4 × 102 + 4 × 101 + 5 × 100 ) × 10−2 Se se fixar a posi¸c˜ao da v´ırgula (neste caso o factor ´e 10−2), o n´umero pode ser tratado como um inteiro. Assim as opera¸c˜oes com n´umeros racionais podem ser feitas internamente como opera¸c˜oes com inteiros, desde que os factores de ajuste sejam guardados para que o resultado final seja correctamente calculado. Note-se em particular que as representa¸c˜oes de inteiros em computadores estudadas anteri- ormente s˜ao representa¸c˜oes em v´ırgula fixa, com a v´ırgula `a direita do bit menos significativo. No caso geral, os ajustes da posi¸c˜ao da v´ırgula e o seu armazenamento ficar˜ao a cargo do programador. Contudo, actualmente, a representa¸c˜ao em computadores dos n´umeros racionais ´e feita, geralmente, em v´ırgula flutuante. 2.4 Representa¸c˜ao em V´ırgula Flutuante A representa¸c˜ao dum n´umero racional em v´ırgula flutuante, contrariamente `a representa¸c˜ao em v´ırgula fixa, ´e feita atrav´es de um par de inteiros que representam respectivamente a mantissa m e o expoente e de forma que para uma determinada base b, o seu valor ´e: c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 30. 2.4. REPRESENTAC¸ ˜AO EM V´IRGULA FLUTUANTE 22 F = m × be Por exemplo, 673 × 1014. A designa¸c˜ao v´ırgula flutuante resulta do facto de que a posi¸c˜ao da v´ırgula depender do expoente e portanto n˜ao ser fixada previamente. A nota¸c˜ao mais usada para v´ırgula flutuante ´e a do IEEE (Institute of Electrical and Electronics Engineers). A base ´e a bin´aria. Em precis˜ao simples cada n´umero ´e representado com 32 bits: S E (8 bits) M (23 bits) O sinal da mantissa ´e representado pelo bit S, que por quest˜oes de eficiˆencia ´e separado da representa¸c˜ao do m´odulo da mantissa o qual ´e constitu´ıdo pelos 23 bits mais `a direita. O valor do m´odulo da mantissa ´e normalmente dado por 1.M(2), isto ´e, 1 mais o valor de M considerado como n´umero racional bin´ario, com a v´ırgula `a esquerda do bit mais significativo. Os oito bits restantes s˜ao interpretados como um inteiro positivo E e representam o expoente cujo valor ´e E − 127. O valor representado ´e F = (−1)S (2E−127 )(1.M)(2) excepto se E for 0000000 ent˜ao F = (−1)S(2−127)(.M(2)) e se M tamb´em ´e zero ent˜ao F = 0. A sequˆencia 1 10000111 10100000000000000000000 representaria um n´umero negativo, dado que S = 1. Como 10000111(2) = 135(10), o expoente ´e 135 − 127 = 8; e o m´odulo da mantissa ´e 1 + 0.101(2) = 1 + 1 × 2−1 + 1 × 2−3 = 1 + (5/8) = 1 + 0.625 = 1.625 O valor representado ´e −28 × 1.625 = −416. Existem outras representa¸c˜oes em v´ırgula flutuante IEEE, como a precis˜ao dupla em que s˜ao usados 64 bits e a qu´adrupla em que s˜ao usados 128 bits. Exerc´ıcio 2.4.1 Determine qual o maior n´umero que ´e represent´avel em precis˜ao simples, segunda a norma do IEEE. Exerc´ıcio 2.4.2 Indique o valor das seguintes representa¸c˜oes em precis˜ao simples segunda a norma do IEEE: (i) 0 01110101 01010100000000000000000000 (ii) 1 00101010 11100000000000000000000000 Exerc´ıcio 2.4.3 Exprima o mais exactamente poss´ıvel os seguintes n´umeros em precis˜ao simples IEEE: 2.5, .0005, 2−40 e 256 c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 31. Cap´ıtulo 3 Algumas No¸c˜oes de Divisibilidade Por defini¸c˜ao, um inteiro a ´e divis´ıvel por um inteiro b se e s´o se a = bq para algum inteiro q. Nesse caso, escreve-se b | a, lendo-se b divide a. Tamb´em se diz que b ´e divisor de a e que a ´e m´ultiplo de b. O inteiro q ´e o quociente da divis˜ao inteira de a por b. Atendendo `a defini¸c˜ao de divisor, se a = bq ent˜ao tanto b como q s˜ao divisores de a. Por exemplo, os divisores positivos de 30 s˜ao 1, 2, 3, 5, 6, 10, 15 e 30, encontrando-se emparelhados. 1 30 2 153 10 5 6 Na procura de divisores de a, para a positivo, n˜ao ´e necess´ario ultrapassar √ a, pois qualquer divisor que seja superior a √ a ter´a que emparelhar com algum divisor que ´e inferior a √ a. 3.1 Bases de Numera¸c˜ao e Crit´erios de Divisibilidade ´E conhecido que, um inteiro positivo representado na base 10 ´e divis´ıvel por 100 se e s´o se a sua representa¸c˜ao terminar por 00 (pois os restos da divis˜ao por 10 e 102 s˜ao 0). ´E divis´ıvel por 1000 sse tal representa¸c˜ao terminar em 000. De modo an´alogo se pode concluir que um inteiro (positivo) representado na base 2 ´e divis´ıvel por 4 (isto ´e, por 22) se a sua representa¸c˜ao em bin´ario terminar por 00 e ´e divis´ıvel por 8 (isto ´e, por 23) sse terminar em 000. Proposi¸c˜ao 5 Um inteiro (positivo) x representado numa certa base b ´e divis´ıvel por bk, sendo k inteiro positivo fixo, se e s´o a representa¸c˜ao de x na base b terminar por k zeros. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 32. 3.1. BASES DE NUMERAC¸ ˜AO E CRIT´ERIOS DE DIVISIBILIDADE 24 Ideia da prova: Para que x seja divis´ıvel por bk ent˜ao ter´a que ser divis´ıvel tamb´em por b1, b2, . . . , bk−1, o que quer dizer que se efectuar k divis˜oes sucessivas por b ter´a k restos 0. Ou seja, x = b(x/b) + 0. Depois, k > 1, tamb´em (x/b) = b((x/b)/b) + 0, . . . Analisando a defini¸c˜ao de representa¸c˜ao base 10, podemos justificar o seguinte crit´erio de divisibilidade por 9. Proposi¸c˜ao 6 Um inteiro ´e divis´ıvel por 9 sse a soma dos d´ıgitos da sua representa¸c˜ao na base 10 for divis´ıvel por 9. Prova: Seja x um inteiro (positivo) qualquer e suponhamos que a sua representa¸c˜ao base 10 ´e anan−1 . . . a1a0. Isto quer dizer que, x = an × 10n + an−1 × 10n−1 + · · · + a1 × 10 + a0 Como 10 = 9 + 1 um m´ultiplo de 9 mais uma unidade 100 = 99 + 1 um m´ultiplo de 9 mais uma unidade 1000 = 999 + 1 um m´ultiplo de 9 mais uma unidade ... 10n = 99 . . . 9 9 repetido n vezes +1 um m´ultiplo de 9 mais uma unidade ent˜ao x = (˙9 + 1) × an + (˙9 + 1) × an−1 + · · · + (˙9 + 1) × a1 + a0, ou seja x = ˙9 + (an + an−1 + · · · + a1 + a0) em que ˙9 ´e abreviatura de “um m´ultiplo de 9” (nesta igualdade, cada ocorrˆencia de ˙9 designa um m´ultiplo diferente). Na “simplifica¸c˜ao” da igualdade, us´amos tamb´em o facto da soma de m´ultiplos de 9 ser um m´ultiplo de 9 e do produto dum n´umero qualquer por um m´ultiplo de 9 ser um m´ultiplo de 9. Observando que x = ˙9 + (an + an−1 + · · · + a1 + a0), concluimos que x ´e m´ultiplo de ˙9 se e s´o se an + an−1 + · · · + a1 + a0 for m´ultiplo de ˙9. O exerc´ıcio seguinte pode ser resolvido por aplica¸c˜ao dum racioc´ınio an´alogo, agora obser- vando que 10 = ˙11−1, 100 = ˙11+1, 1000 = ˙11−1, 1000 = 1000×10 = ( ˙11−1)( ˙11−1) = ˙11+1, 10000 = ( ˙11 + 1) × 10 = ˙11 − 1, . . . Exerc´ıcio 3.1.1 Mostre que um inteiro ´e divis´ıvel por 11 sse a soma dos d´ıgitos de ordem par da sua representa¸c˜ao na base 10 for igual `a soma dos d´ıgitos de ordem ´ımpar. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 33. 3.2. NOC¸ ˜AO DE DIVISOR E DE M ´ULTIPLO 25 Exerc´ıcio 3.1.2 Mostre que um inteiro (i) ´e divis´ıvel por 5 sse a sua representa¸c˜ao decimal terminar em 0 ou 5; (ii) ´e divis´ıvel por 3 sse a soma dos d´ıgitos da sua representa¸c˜ao decimal for divis´ıvel por 3. (iii) ´e divis´ıvel por 2 sse o d´ıgito menos significativo da sua representa¸c˜ao decimal for par. 3.2 No¸c˜ao de Divisor e de M´ultiplo O conjunto1 dos divisores dum inteiro a ´e constitu´ıdo por todos os inteiros positivos tais que se b | a e os seus sim´etricos. {divisores de a} = {b : b ∈ Z e b divide a} Frequentemente, o termo divisor ´e usado para referir divisor positivo. O conjunto dos m´ultiplos de b ´e constitu´ıdo pelos inteiros da forma bz para z inteiro, ou seja {m´ultiplos de b} = {bz : z ∈ Z}. Para mostrar formalmente o resultado seguinte basta usar a defini¸c˜ao de m´ultiplo e de divisor que acab´amos de apresentar. Este resultado foi utilizado na sec¸c˜ao anterior, devendo ser bem conhecido. Proposi¸c˜ao 7 A soma, a diferen¸ca e o produto de dois m´ultiplos de b ´e um m´ultiplo de b. O produto dum m´ultiplo de b por qualquer inteiro ´e um m´ultiplo de b. Prova: Sejam m1 e m2 m´ultiplos de b. Ent˜ao existem inteiros z1 e z2 tais que m1 = bz1 e m2 = bz2. Logo, m1 + m2 = bz1 + bz2 = b(z1 + z2) e como a soma de inteiros ´e um inteiro, conclui-se que z1 +z2 ∈ Z, pelo que m1 +m2 ´e da forma bz, para algum z ∈ Z (concretamente, para z = z1 + z2). Portanto, a soma de m´ultiplos de b ´e m´ultiplo de b. Para mostrar que a diferen¸ca de dois m´ultiplos de b (isto ´e, m1 − m2) ´e m´ultiplo de b procede-se analogamente. Para mostrar que m1m2 ´e m´ultiplo de b, isto ´e, que o produto de dois m´ultiplos de b ´e m´ultiplo de b, observe-se que m1m2 = (bz1)(bz2) = b(bz1z2) e como bz1z2 ∈ Z, conclui-se que m1m2 ´e produto de b por um inteiro, ou seja, ´e m´ultiplo de b. Do mesmo modo, para concluir que o produto dum m´ultiplo de b (por exemplo, m1) por um qualquer inteiro x ´e m´ultiplo de b, basta notar que m1x = (bz1)x = b(z1x) e z1x ∈ Z. 1 ´E usual representar “o conjunto dos x’s tais que x satisfaz condi¸c˜ao. . . ” por {x | x satisfaz condi¸c˜ao . . . }. Neste cap´ıtulo, usaremos a nota¸c˜ao alternativa {x : x satisfaz condi¸c˜ao . . . }, para evitar usar | com duplo significado, reservando | para “divide”. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 34. 3.3. FACTORIZAC¸ ˜AO EM PRIMOS 26 Exerc´ıcio 3.2.1 Mostrar que quaisquer que sejam x, y e z inteiros, se x dividir y e dividir y + z ent˜ao tamb´em divide z. 3.3 Factoriza¸c˜ao em Primos Um n´umero p ´e primo se e s´o se tem exactamente quatro divisores (inteiros), nomeadamente, p, −p, 1 e −1. Assim, um n´umero ´e primo se e s´o se tem exactamente dois divisores positivos. Proposi¸c˜ao 8 Qualquer inteiro maior do que 1 ´e ou primo ou produto de primos. Prova: Pela defini¸c˜ao de primo, tem-se 2 ´e primo. Seja x ∈ N tal que x > 2. Suponhamos que j´a mostr´amos que todo y ∈ N tal que 2 ≤ y < x ´e ou primo ou produto de primos. Vamos mostrar que ent˜ao tamb´em podemos concluir que x ´e primo ou produto de primos. De facto, se x n˜ao for primo, existem x1, x2 ∈ N {0, 1} tais que x = x1x2. Como 2 ≤ x1 < x e 2 ≤ x2 < x, sabemos j´a que x1 ´e primo ou produto de primos e x2 ´e primo ou produto de primos. Analisando os quatro casos (a) x1 e x2 primos, (b) x1 e x2 produtos de primos, (c) x1 primo e x2 produto de primos, e (d) x1 produto de primos e x2 primo, concluimos que se x = x1x2 ent˜ao x pode escrever-se como produto de primos. Logo, se x n˜ao ´e primo ent˜ao x ´e um produto de primos, ou seja, x ´e primo ou produto de primos. A t´ecnica utilizada na prova anterior designa-se por indu¸c˜ao matem´atica. Como hip´otese de indu¸c˜ao supusemos que j´a se tinha mostrado que todo y ∈ N tal que 2 ≤ y < x ou ´e primo ou ´e produto de primos. Como x est´a fixo (e ´e finito), essa prova pode ser realmente reconstru´ıda. Por exemplo, se x fosse 24, estariamos a assumir que j´a tinhamos verificado que 2, 3, 5, 7, 11, 13, 17, 19 e 23 s˜ao primos e que 4 = 2 × 2, 6 = 2 × 3, 8 = 2 × 2 × 2, 9 = 3 × 3, 10 = 2 × 5, 12 = 2 × 2 × 3, 14 = 2 × 7, 15 = 3 × 5, 16 = 2 × 2 × 2 × 2, 18 = 2 × 3 × 3, 20 = 2 × 2 × 5, 21 = 3 × 7 e 22 = 2 × 11. Como 24 n˜ao ´e primo porque, por exemplo, 24 = 4 × 6, ent˜ao podemos concluir que ´e produto de primos, por substitui¸c˜ao de 4 e 6 (que correspondem a x1 e x2) pelas suas factoriza¸c˜oes em primos: 24 = (2 × 2) × (2 × 3). Usualmente, escreve-se 24 = 23 × 3, sendo esta a factoriza¸c˜ao de 24 primos. Em geral, para qualquer n´umero natural n n˜ao inferior a 2, existem primos p1, . . . pk ´unicos e tal que n se pode factorizar de forma ´unica como pα1 1 × · · · × pαk k sendo αi = 0 e pi < pj se i < j, para todo i ≤ k e todo j ≤ k. Por exemplo, 37268 = 22 × 71 × 113 e 500 = 22 × 53. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 35. 3.3. FACTORIZAC¸ ˜AO EM PRIMOS 27 Corol´ario 8.1 Seja x um inteiro tal que x ≥ 2 e x n˜ao ´e primo. A factoriza¸c˜ao de x em primos ´e ´unica, a menos de reordena¸c˜ao dos factores. Ideia da prova: An´aloga `a anterior, supondo como hip´otese j´a se provou que todo y ∈ N tal que 2 ≤ y < x ou ´e primo ou se escreve de forma ´unica como produto de primos (a menos de reordena¸c˜ao de factores). Corol´ario 8.2 Qualquer inteiro maior do que 1 que n˜ao ´e primo ´e divis´ıvel por algum primo. Prova: Seja x um inteiro qualquer maior do que 1. Se x n˜ao ´e primo ent˜ao x ´e produto de primos. Consequentemente, algum primo ´e seu divisor. Proposi¸c˜ao 9 O conjunto dos inteiros n˜ao negativos que s˜ao primos ´e infinito. Prova: Suponhamos que s´o existiam n primos, sendo n um certo inteiro fixo. Ou seja, suponhamos que o conjunto dos primos era finito e que tinha exactamente n elementos, os quais vamos denotar por p1, p2, . . . , pn. Ent˜ao, o inteiro positivo 1 + n i=1 pi n˜ao seria primo, j´a que ´e maior do que qualquer um dos primos p1, p2, . . . , pn. Mas se 1 + p1p2 . . . pn n˜ao ´e primo, ent˜ao algum dos primos o divide (ou seja, ´e m´ultiplo de algum dos primos). Suponhamos que pk divide 1 + p1p2 · · · pn, sendo k um inteiro fixo, 1 ≤ k ≤ n. Como pk divide n i=1 pi isto ´e, pk divide o produto 1+p1p2 · · · pn, pode-se concluir que se pk dividir 1 + p1p2 · · · pn ent˜ao pk divide 1. Mas nenhum primo divide 1. O absurdo resultou de se ter suposto que o conjunto dos primos era finito. Logo, o conjunto dos primos ´e infinito. 3.3.1 Determina¸c˜ao de primos: crivo de Erast´otenes Descreve-se a seguir um algoritmo para determina¸c˜ao de todos os primos n˜ao superiores a um n´umero n dado. Tal algoritmo ´e conhecido como m´etodo do crivo. Parte-se duma tabela contendo todos os n´umeros n˜ao superiores n. O algoritmo resume-se a seleccionar o menor inteiro na tabela (ainda n˜ao seleccionado) e apagar todos os seus m´ultiplos at´e todos os valores estarem ou seleccionados ou apagados. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 36. 3.4. M´AXIMO DIVISOR COMUM 28 2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 2 3 5 7 11 13 17 19 23 25 29 31 35 37 41 43 47 49 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 49 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 O processo continua . . . Os valores que ficarem na tabela s˜ao os primos, neste caso, n˜ao superiores a 50 (o valor de n neste exemplo). 3.3.2 C´alculo de divisores por an´alise da factoriza¸c˜ao em primos A partir da factoriza¸c˜ao dum n´umero em primos ´e poss´ıvel determinar todos os seus divisores. Por exemplo, os divisores de 30, que ´e dado por 30 = 21 × 31 × 51 s˜ao: 20 × 30 × 50 = 1 21 × 30 × 50 = 2 20 × 31 × 50 = 3 20 × 30 × 51 = 5 21 × 31 × 50 = 6 21 × 30 × 51 = 10 20 × 31 × 51 = 15 21 × 31 × 51 = 30 Em geral, se pα1 1 · · · pαk k for a decomposi¸c˜ao de x em primos ent˜ao o conjunto dos divisores positivos de x ´e {pβ1 1 · · · pβk k : 0 ≤ βi ≤ αi para i = 1, . . . , k} concluindo-se que o n´umero de divisores de pα1 1 · · · pαk k ´e k i=1(αi + 1). 3.4 M´aximo Divisor Comum Sabemos que 1 ´e divisor de qualquer inteiro e que o maior divisor de qualquer inteiro positivo x ´e o pr´oprio x. Dados inteiros positivos a e b, podemos falar do seu m´aximo divisor comum, o qual representamos por mdc(a, b). O m´aximo divisor comum ´e o maior dos divisores comuns: c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 37. 3.4. M´AXIMO DIVISOR COMUM 29 d ´e mdc(a, b) sse d | a, d | b e d | d qualquer que seja d tal que d | a e d | b. Por defini¸c˜ao de mdc(a, b), cada divisor comum de a e b ´e divisor de mdc(a, b). Por exemplo, por an´alise da decomposi¸c˜ao de 30 e 500 em primos, 30 = 2 × 3 × 5 e 500 = 22 × 53, podemos concluir que mdc(30, 500) = 10. Dois inteiros a e b chamam-se primos entre si se e s´o se mdc(a, b) = 1. Proposi¸c˜ao 10 Os inteiros a/mdc(a, b) e b/mdc(a, b) s˜ao primos entre si. Prova: Queremos mostrar que mdc( a mdc(a,b) , b mdc(a,b) ) = 1. Para isso vamos provar que se mdc( a mdc(a,b) , b mdc(a,b) ) = d ent˜ao mdc(a, b)d tamb´em divide a e b. Podemos depois concluir que necessariamente d = 1 pois se d fosse maior do que 1 ent˜ao mdc(a, b)d > mdc(a, b), mdc(a, b)d seria um divisor comum a a e b, maior do que o m´aximo divisor comum, o que, por defini¸c˜ao de mdc(a, b) ´e imposs´ıvel. Para completar os detalhes da prova, resta mostrar que mdc(a, b)d ´e divisor de a e de b se d | a mdc(a,b) e d | b mdc(a,b) . De facto, basta notar que: a = mdc(a, b) a mdc(a, b) = mdc(a, b)d a mdc(a, b)d e b = mdc(a, b) b mdc(a, b) = mdc(a, b)d b mdc(a, b)d . Tem-se mdc(320 ×57 ×1127 ×312, 24 ×36 ×525) = 36 ×57, porque o m´aximo divisor comum ´e dado por 2min(0,4) × 3min(20,6) × 5min(7,25) × 11min(27,0) × 31min(2,0) ou seja, por 203657110310. Este m´etodo pode ser sempre aplicado se forem conhecidas as factoriza¸c˜oes dos n´umeros a e b. Quando n˜ao se conhecem, o algoritmo de Euclides permite calcular mdc(a, b) eficientemente. 3.4.1 C´alculo do m´aximo divisor comum pelo algoritmo de Euclides A correc¸c˜ao do algoritmo de Euclides para c´alculo do mdc(a, b) decorre do seguinte resultado. Lema 1 Sejam a e b inteiros positivos tais que a < b e seja r o resto da divis˜ao de a por b. Ent˜ao, mdc(a, b) = mdc(b, r). Prova: Represente-se por d o m´aximo divisor comum de a e b. Por defini¸c˜ao de divis˜ao inteira, r ´e o resto da divis˜ao de a por b sse 0 ≤ r < b e a = bq + r para algum q ∈ Z. Por outro lado, por defini¸c˜ao de m´aximo divisor comum, d|a e d|b. Portanto, d|(a − bq). Ou seja, c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 38. 3.4. M´AXIMO DIVISOR COMUM 30 d|r. Logo, d ´e um divisor comum de b e r. Seja d um outro divisor comum de b e de r. Resta-nos mostrar que d ter´a que dividir d para poder concluir que d ´e mdc(b, r). Para isso, basta notar que se d |b e d |r ent˜ao d |(bq + r) e portanto d |a. Logo, d ´e um divisor comum a a e b, e portanto d |mdc(a, b), isto ´e, d |d. Algoritmo de Euclides para determina¸c˜ao de mdc(a, b). Sendo a e b inteiros positivos, podemos definir mdc(a, b) recursivamente por mdc(a, 0) = a se a > 0 mdc(a, b) = mdc(b, a%b) se a > b > 0 mdc(a, b) = mdc(b, a) se a < b em que a%b denota o resto da divis˜ao de a por b. Por exemplo, mdc(30, 500) = mdc(500, 30) = mdc(30, 500%30) = mdc(30, 20) = mdc(20, 10) = mdc(10, 0) = 10. 500 30 20 16 30 20 10 1 20 10 0 2 Observe-se que mdc(500, 30) = 17 × 30 − 1 × 500 j´a que 10 = 30 − 1 × 20 = 30 − (500 − 16 × 30) = 17 × 30 − 1 × 500 ou seja, mdc(500, 30) pode-se escrever na forma 500x + 30y para x, y ∈ Z apropriados. Lema 2 Quaisquer que sejam a, b ∈ Z+, existem inteiros x e y tais que ax + by = mdc(a, b), ou seja, mdc(a, b) ´e combina¸c˜ao linear inteira de a e b. Para escrever mdc(100, 17) (isto ´e, 1) como combina¸c˜ao de 100 e 17, observe-se que: 100 17 15 5 17 15 2 1 15 2 1 7 2 1 0 2 Efectuando an´alise para tr´as, substituindo sucessivamente os restos de forma a conseguir fazer aparecer 100 e 17 (a e b iniciais) obtem-se a combina¸c˜ao procurada: 1 = 15 − 7 × 2 = 15 − 7(17 − 1 × 15) = 8 × 15 − 7 × 17 = 8(100 − 5 × 17) − 7 × 17 = 8 × 100 − 47 × 17. Proposi¸c˜ao 11 Sendo a, b e c constantes inteiras, a equa¸c˜ao ax + by = c com x, y ∈ Z, tem solu¸c˜ao se e s´o se mdc(a, b) | c. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 39. 3.5. M´INIMO M ´ULTIPLO COMUM 31 Prova: Como mdc(a, b) divide a e divide b, tamb´em divide ax + by quaisquer que sejam x, y ∈ Z. Portanto, para que ax + by = c tenha solu¸c˜ao ´e necess´ario que mdc(a, b) divida c. Por outro lado, usando o facto de mdc(a, b) se poder escrever como combina¸c˜ao inteira de a e de b, temos mdc(a, b) = ama + bmb para ma e mb inteiros adequados. Se mdc(a, b) | c, ent˜ao c = mdc(a, b) c mdc(a,b) e c mdc(a,b) ∈ Z. Multiplicando mdc(a, b) = ama + bmb por c mdc(a,b) obtem-se mdc(a, b) c mdc(a,b) = a(ma c mdc(a,b) ) + b(mb c mdc(a,b) ). Assim, vemos que se tomarmos x = ma c mdc(a,b) e y = mb c mdc(a,b) temos uma solu¸c˜ao inteira de ax + by = c. Pode-se provar que (x, y) ∈ Z2 ´e solu¸c˜ao de ax + by = c sse x = ma c mdc(a,b) + k b mdc(a,b) e y = mb c mdc(a,b) − k b mdc(a,b) , com k ∈ Z qualquer. 3.5 M´ınimo M´ultiplo Comum Dados inteiros positivos a e b sabemos que ab ´e um m´ultiplo de a e de b, fazendo sentido determinar o menor inteiro positivo que ´e m´ultiplo comum a a e b, ou seja o m´ınimo m´ultiplo comum, mmc(a, b). Por defini¸c˜ao m ´e mmc(a, b) sse a | m, b | m e m | m para todo m tal que a | m e b | m . Assim, mmc(a, b) ´e um divisor de todos os m´ultiplos comuns de a e b. Exemplo 9 mmc(320571127312, 2436525) = 2max(0,4)3max(20,6)5max(7,25)11max(27,0)31max(2,0) = 243205251127312. Como a mdc(a, b) e b mdc(a, b) s˜ao primos entre si, podemos mostrar a Proposi¸c˜ao 12. Proposi¸c˜ao 12 Quaisquer que sejam a, b ∈ Z+, mmc(a, b) = ab mdc(a, b) . Prova: ab = mdc(a, b) a mdc(a, b) mdc(a, b) b mdc(a, b) = mdc(a, b) a mdc(a, b) b mdc(a, b) mmc(a,b) mdc(a, b) Para ver que mdc(a, b) a mdc(a,b) b mdc(a,b) ´e mmc(a, b), notemos que ´e m´ultiplo de a e de b. Por outro lado, para verificar que divide qualquer outro m´ultiplo m de a e de b, escrevamos m = k1a e m = k2b para inteiros k1 e k2 apropriados. Ent˜ao, m = k1mdc(a, b) a mdc(a,b) e m = k2mdc(a, b) b mdc(a,b) , pelo que k1 a mdc(a,b) = k2 b mdc(a,b) . Como b mdc(a,b) e a mdc(a,b) s˜ao primos entre si, b mdc(a,b) tem que dividir k1. Assim, k1 = b mdc(a,b) k1 para algum k1 e consequentemente, m = b mdc(a,b) k1mdc(a, b) a mdc(a,b) e portanto m ´e m´ultiplo de mdc(a, b) b mdc(a,b) a mdc(a,b) . Conclui-se que mdc(a, b) b mdc(a,b) a mdc(a,b) ´e mmc(a, b). c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 40. 3.6. CONGRUˆENCIAS 32 3.6 Congruˆencias Dados b ∈ Z+ e x, y ∈ Z dizemos que x e y s˜ao congruentes m´odulo b se e s´o se x − y for m´ultiplo de b, escrevendo x ≡ y (mod b). Tal ´e equivalente a dizer que x e y d˜ao o mesmo resto quando divididos por b. De facto, se x = qxb + rx e y = qyb + ry com 0 ≤ rx < b e 0 ≤ ry < b, ent˜ao x − y = (qx − qy)b + (rx − ry) e portanto x − y ´e m´ultiplo de b se e s´o se rx − ry o for. Mas, como 0 ≤ rx < b e 0 ≤ ry < b, podemos concluir que −b < rx − ry < b, e consequentemente rx − ry ´e m´ultiplo de b se e s´o se for zero. Portanto, x ≡ y (mod b) sse os restos da divis˜ao de x e y por b s˜ao iguais. (Escrevemos qx, qy e rx, ry em vez de q1, q2 e r1, r2 para indicar que esses quocientes e restos dependem de x e y respectivamente.) As rela¸c˜oes de congruˆencias tˆem algumas propriedades interessantes (e importantes). Por exemplo, a “congruˆencia m´odulo 2” decomp˜oe os inteiros em dois conjuntos: {x : x ∈ Z, x ≡ 0 (mod 2)} = {2k : k ∈ Z} = {pares} {x : x ∈ Z, x ≡ 1 (mod 2)} = {1 + 2k : k ∈ Z} = {´ımpares} A rela¸c˜ao de “congruˆencia m´odulo b” (para b ∈ Z+) decomp˜oe os inteiros em b conjuntos {x : x ∈ Z, x ≡ 0 (mod b)} e {x : x ∈ Z, x ≡ 1 (mod b)}, . . . , {x : x ∈ Z, x ≡ b − 1 (mod b)}, sendo cada um identificado por um dos b restos poss´ıveis. Outra das propriedades interessantes da rela¸c˜ao de congruˆencia ´e ser preservada pelas opera¸c˜oes de soma, subtrac¸c˜ao e produto, ou seja, se x1 ≡ y1 (mod b) e x2 ≡ y2 (mod b) ent˜ao x1 ± x2 ≡ y1 ± y2 (mod b) e x1 × x2 ≡ y1 × y2 (mod b). O exemplo seguinte ilustra uma das aplica¸c˜oes de congruˆencias. Exemplo 10 Suponha que se quer resolver 5x + 3y = 1 para x, y ∈ Z. Como 5x + 3y = 1 ⇔ 5x − 1 = 3(−y) podemos come¸car por resolver 5x ≡ 1 (mod 3). Tem-se 5x ≡ 1 (mod 3) ⇔ 2x ≡ 1 (mod 3). Por outro lado, 2x ≡ 1 (mod 3) ⇔ (−1)x ≡ 1 (mod 3), ou seja x ≡ (−1) (mod 3), isto ´e x ≡ 2 (mod 3). Assim, 5x ≡ 1 (mod 3) se e s´o se x = 2 + 3k para algum k ∈ Z. Voltando `a equa¸c˜ao inicial, temos 5x + 3y = 1 ⇔ 5(2 + 3k) + 3y = 1 ⇔ y = −3 − 5k concluindo-se que as solu¸c˜oes de 5x + 3y = 1 s˜ao os pontos (x, y) da forma x = 2 + 3k e y = −3 − 5k, com k ∈ Z. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 41. Cap´ıtulo 4 Indu¸c˜ao Matem´atica O m´etodo de demonstra¸c˜ao por indu¸c˜ao matem´atica (ou indu¸c˜ao finita) ser´a bastante usado durante o curso pelo que ´e conveniente introduzi-lo (ou record´a-lo). 4.1 Princ´ıpio de Indu¸c˜ao Matem´atica Imagine uma escada com uma infinidade de degraus. N˜ao ´e uma escada com um n´umero enorme de degraus! Esta escada, tem sempre um degrau acima de qualquer outro que consi- dere. Suponha que ´e verdade (4.1). “Se conseguir chegar at´e um degrau, ent˜ao tamb´em consigo chegar ao seguinte.” (4.1) Se nada mais for dito, n˜ao pode concluir que “consegue chegar ao 16o ¯ degrau”. Suponha agora n˜ao s´o (4.1) mas tamb´em (4.2). “Consigo chegar ao 13o ¯ degrau” (4.2) O que pode concluir? Como consegue chegar ao 13o ¯ e ´e verdade (4.1), ent˜ao consegue chegar ao 14o ¯. Como consegue chegar ao 14o ¯ e ´e verdade (4.1), ent˜ao consegue chegar ao 15o ¯. Como consegue chegar ao 15o ¯ e ´e verdade (4.1), ent˜ao consegue chegar ao 16o ¯. De (4.1) e (4.2), conclui-se (4.3). “Consegue chegar ao n-´esimo degrau, qualquer que seja n ≥ 13.” (4.3) Como n˜ao ´e dito sobre de que forma chegou ao 13o ¯ degrau, nada pode concluir sobre a possibilidade de chegar ao degrau n, para n < 13. Mas, suponha agora que (4.4) ´e verdade. “Consigo chegar ao 1o ¯ degrau”. (4.4) c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 42. 4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 34 Do mesmo modo que anteriormente, se supuser (4.1) e (4.4) ent˜ao pode concluir (4.5). “Consegue chegar ao n-´esimo degrau, qualquer que seja n ≥ 1.” (4.5) Proposi¸c˜ao 13 (Princ´ıpio de Indu¸c˜ao Matem´atica) Escrevamos P(n) como abreviatura de “o inteiro n˜ao negativo n satisfaz a propriedade/condi¸c˜ao P ”. Tem-se ∀n ∈ N P(n), se forem satisfeitas as duas condi¸c˜oes (i) e (ii) seguintes. (i) P(0) ´e verdade; (ii) ∀k ∈ N ( P(k) ⇒ P(k + 1) ), isto ´e para todo k ∈ N, se P(k) ent˜ao P(k + 1); P(0) diz-se (caso de) base de indu¸c˜ao. Em P(k) ⇒ P(k+1), chamamos a P(k) a hip´otese de indu¸c˜ao e a P(k + 1) a tese. Exemplo 11 Seja An a ´area dum quadrado de lado 2n, com n ≥ 1 (inteiro). Vamos mostrar que o resto da divis˜ao de An por 3 ´e 1, qualquer que seja n ≥ 1. (i) (Caso de base) Como A1 ´e 4 e sabemos que o resto da divis˜ao de 4 por 3 ´e 1, ´e verdade que a condi¸c˜ao se verifica para n = 1. (ii) (Hereditariedade) Mostremos que qualquer que seja k ≥ 1, se Ak for da forma 3p+1 para algum inteiro n˜ao negativo p, ent˜ao Ak+1 = 3q + 1 para algum inteiro n˜ao negativo q. Ora, se Ak = 3p+1, ent˜ao Ak+1 = (2k+1)2 = 4(2k)2 = 4Ak = 4(3p+1) = 3(4p+1)+1. Ou seja, Ak+1 = 3q + 1 para algum inteiro n˜ao negativo, j´a que se p ∈ Z e p ≥ 0 ent˜ao 4p + 1 ∈ Z e 4p + 1 ≥ 0. Usando (ii) e (i) podemos concluir que qualquer que seja n ≥ 1, a ´area do quadrado de lado 2n excede numa unidade um m´ultiplo de 3. Observe que, se nos fosse pedido, podiamos apresentar a dedu¸c˜ao de que A6 excede numa unidade um m´ultiplo de 3: Por (i), sabemos que o resto da divis˜ao de A1 por 3 ´e 1; De (i) e (ii), concluimos que o resto da divis˜ao de A2 por 3 ´e 1; Como o resto da divis˜ao de A2 por 3 ´e 1, concluimos, por (ii), que o resto da divis˜ao de A3 por 3 ´e 1; Como o resto da divis˜ao de A3 por 3 ´e 1, concluimos, por (ii), que o resto da divis˜ao de A4 por 3 ´e 1; Como o resto da divis˜ao de A4 por 3 ´e 1, concluimos, por (ii), que o resto da divis˜ao de A5 por 3 ´e 1; Como o resto da divis˜ao de A5 por 3 ´e 1, concluimos, por (ii), que o resto da divis˜ao de A6 por 3 ´e 1. Do mesmo modo que conseguimos mostrar que A6 d´a resto 1 quando dividido por 3, podiamos, dado um n ≥ 1, apresentar a dedu¸c˜ao de que An d´a resto 1 quando dividido por 3, se tal nos fosse pedido. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 43. 4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 35 Proposi¸c˜ao 14 (Vers˜ao geral do Princ´ıpio de Indu¸c˜ao) Seja n0 ∈ Z, e suponha que P(n) denota “o inteiro n satisfaz a propriedade P. Se forem satisfeitas as duas condi¸c˜oes (i) e (ii) seguintes, ent˜ao, para todo o inteiro n ≥ n0 tem-se P(n). (i) P(n0) ´e verdade; (ii) ∀k ≥ n0 ( P(k) ⇒ P(k + 1) ), isto ´e, para todo inteiro k tal que k ≥ n0, se P(k) ent˜ao P(k + 1); Exemplo 12 Vamos mostrar que qualquer que seja n ≥ 1 e quaisquer que sejam a, b ∈ R+, se tem (a + b)n < 2n(an + bn). Podemos concluir isso se mostrarmos que as duas condi¸c˜oes de aplicabilidade do princ´ıpio de indu¸c˜ao matem´atica se verificam neste caso. (i) Para n=1, (a + b)1 = a + b < 2(a + b) = 21(a1 + b1), porque a, b ∈ R+. (ii) Suponhamos agora que para um dado k ≥ 1 se tem (a+b)k < 2k(ak +bk), para a, b ∈ R+ quaisquer, e vamos mostrar que ent˜ao (a + b)k+1 < 2k+1(ak+1 + bk+1). Como (a + b)k+1 = (a + b)k(a + b), e por hip´otese (a + b)k < 2k (ak + bk ), concluimos que (a + b)k+1 < 2k (ak + bk )(a + b) = 2k (ak+1 + bk+1 + ak b + bk a). Como 2k (ak+1 + bk+1 + ak b + bk a) = 2k (ak+1 + bk+1 ) + 2k (ak b + bk a), para concluir que (a + b)k+1 < 2k+1(ak+1 + bk+1) vamos mostrar que ak b + bk a ≤ ak+1 + bk+1 quaisquer que sejam a, b reais positivos. Tem-se ak b + bk a − ak+1 − bk+1 = −(ak − bk )(a − b) ≤ 0, j´a que quaisquer que sejam x, y ∈ R+, se x ≤ y ent˜ao xp ≤ yp, para todo p ≥ 1 (relembre que as fun¸c˜oes fp(x) = xp, s˜ao estritamente crescentes em R+). c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 44. 4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 36 Exerc´ıcio 4.1.1 Aplique o princ´ıpio de indu¸c˜ao matem´atica para resolver os problemas se- guintes. a) Mostrar que |sen(nx)| ≤ n|sen(x)|, para todo x ∈ R e todo n ∈ N. b) Mostrar que 4n + 15n − 1 ´e m´ultiplo de 9, para todo n ≥ 1. Exemplo 13 Considere o seguinte algoritmo (imagine que Y ´e uma caixa1). 1. Coloque em Y o valor 0. 2. Escolha um inteiro (vamos referi-lo por X). 3. Se X = 0 ent˜ao fa¸ca 7. 4. Se X > 0 ent˜ao volte a 2. 5. Substitua o valor em Y pela soma do valor que l´a estava com dois. 6. Volte a 2. 7. Indique o valor que guarda em Y, e p´are. O valor em Y quando se executa 7. ´e o dobro do n´umero de inteiros negativos nos valores escolhidos. Para o provar, vamos mostrar que tal propriedade caracteriza o valor de Y em cada itera¸c˜ao do ciclo (ou seja, ´e um invariante do ciclo). Usamos indu¸c˜ao sobre o n´umero de itera¸c˜oes efectuadas. O valor que est´a guardado em Y quando est´a a executar 2. pela 2a ¯ vez ´e 0 se o primeiro valor escolhido em 2. for positivo, e ´e 2 se tal valor for negativo. Quando est´a a executar 2. pela 3a ¯ vez, o valor em Y ´e 4 se ambos os valores escolhidos anteriormente forem negativos, ´e 2 se um for negativo e o outro positivo, e ´e 0 se ambos forem positivos. Suponhamos que para um dado k ≥ 1, quando se se est´a a executar 2. pela ka ¯ vez, o valor em Y ´e o dobro do n´umero de inteiros negativos nos k − 1 valores escolhidos anteriormente. Ent˜ao, por an´alise do algoritmo, concluimos que se se estiver a executar 2. pela (k + 1)a ¯ vez, o valor em Y ´e igual ao valor anterior se tivermos dado mais um n´umero positivo, ou foi incrementado de duas unidades, se tivermos dado mais um n´umero negativo. Portanto, se quando se estiver a executar 2. pela ka ¯ vez, o valor em Y ´e o dobro do n´umero de inteiros negativos nos k−1 valores escolhidos anteriormente, ent˜ao quando se estiver a executar 2. pela (k + 1)a ¯ vez, valor em Y ´e o dobro do n´umero de inteiros negativos nos k valores escolhidos anteriormente. Consequentemente, por indu¸c˜ao matem´atica, podemos concluir que o valor em Y quando se executa 7. ´e o dobro do n´umero de inteiros negativos nos valores escolhidos. 1 Na terminologia de linguagens de programa¸c˜ao, X e Y s˜ao vari´aveis de programa¸c˜ao. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 45. 4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 37 4.1.1 Erros frequentes ´E necess´ario mostrar as duas condi¸c˜oes de aplicabilidade do princ´ıpio de indu¸c˜ao, sem o que as provas n˜ao ficam completas e, no pior dos casos, os resultados mal “demonstrados” s˜ao mesmo falsos. O exemplo seguinte serve para ilustrar o facto de certas propriedades, n˜ao observ´aveis, poderem ser heredit´arias. Heredit´arias, no sentido de se um dado inteiro as satisfizer, tamb´em o inteiro seguinte as satisfaz. Exemplo 14 Considere a seguinte demonstra¸c˜ao (claramente, errada!) de que “entre dois inteiros consecutivos existe uma infinidade de inteiros”. Prova: Para todo x ∈ R (em particular para x inteiro) se k ≤ x ≤ k + 1 ent˜ao k + 1 ≤ x + 1 ≤ k + 2, qualquer que seja k ∈ N. Assim, se entre k e k + 1 existir uma infinidade de inteiros, ent˜ao entre k+1 e k+2 tamb´em existe uma infinidade de inteiros. De facto, a cada inteiro x no intervalo [k, k +1] podemos associar um inteiro x no intervalo [k + 1, k + 2], a saber, por exemplo x ´e x + 1. Logo, por indu¸c˜ao matem´atica sobre k, concluimos que entre dois inteiros conse- cutivos existe uma infinidade de inteiros. Como entre dois inteiros consecutivos n˜ao h´a qualquer outro inteiro, a prova tem que estar errada. O erro est´a na conclus˜ao “precipitada”. N˜ao se mostrou que existia um intervalo [k, k +1] que tinha uma infinidade de inteiros. Apenas se mostrou a condi¸c˜ao (ii) do princ´ıpio de indu¸c˜ao. A condi¸c˜ao (i) n˜ao foi provada, nem se pode provar! Exemplo 15 A demonstra¸c˜ao seguinte est´a obviamente errada dado que permite concluir que “todos os cavalos s˜ao brancos” (e, todos sabemos que h´a cavalos doutras cores). Vamos mostrar que qualquer que seja o n´umero de cavalos que estejam numa cerca, se existir algum cavalo branco entre eles ent˜ao todos os cavalos nessa cerca s˜ao brancos. Prova: Para isso vamos mostrar que as duas condi¸c˜oes (i) e (ii) do princ´ıpio de indu¸c˜ao se verificam nessa situa¸c˜ao. (i) Como deve estar pelo menos um cavalo branco na cerca, podemos afirmar que se s´o existir um cavalo na cerca ´e branco. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 46. 4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 38 (ii) Fixemos um k ∈ N, e suponhamos que se existirem k cavalos numa cerca qualquer, estando pelo menos um cavalo branco entre eles, ent˜ao todos os demais s˜ao brancos. Consideramos agora uma cerca onde est˜ao k + 1 cavalos sendo branco pelo menos um deles. Retiremos um cavalo da cerca deixando ficar o branco. Dado que est˜ao k cavalos na cerca, estando um branco entre eles, segue pela hip´otese de indu¸c˜ao, que os k cavalos na cerca s˜ao brancos. Resta mostrar que o cavalo que retir´amos primeiramente tamb´em era branco. Retiremos um dos cavalos que est´a na cerca (´e indiferente qual se retira porque de facto todos s˜ao brancos), e voltemos a colocar o que retir´amos primeiramente. Mais uma vez, pela hip´otese, podemos concluir que todos os cavalos que est˜ao agora na cerca s˜ao brancos. Assim, pelo princ´ıpio de indu¸c˜ao matem´atica segue a validade da proposi¸c˜ao que queriamos mostrar. Sabemos que “se existir algum cavalo branco numa cerca”, tamb´em l´a podem estar cavalos doutras cores. Logo, a afirma¸c˜ao que “mostr´amos” por indu¸c˜ao ´e falsa. Mas, como o sistema dedutivo que estamos a seguir ´e consistente, n˜ao podemos deduzir proposi¸c˜oes falsas, pelo que h´a que encontrar um erro (v´ıcio) na prova dada. Sabemos que se estiverem dois cavalos numa cerca e um deles for branco, ent˜ao isso n˜ao implica que o outro tamb´em seja branco. Por outras palavras, ´e falso P(1) ⇒ P(2). Para localizarmos o erro, vamos ent˜ao seguir em detalhe a prova de (ii) para k = 1. Fixemos k = 1. Suponhamos (podemos sempre supor o que quisermos) que ´e sempre branco o cavalo que estiver s´ozinho numa cerca em que h´a pelo menos um cavalo branco. Consideramos agora uma cerca onde est˜ao dois cavalos sendo branco pelo menos um deles. Retiremos um cavalo da cerca deixando ficar o branco. Dado que est´a um s´o cavalo na cerca, estando um branco na cerca, segue pela hip´otese de indu¸c˜ao, que o cavalo na cerca ´e branco. Resta mostrar que o cavalo que retir´amos primeiramente tamb´em era branco. Retiremos o cavalo que est´a na cerca, e voltemos a colocar o que retir´amos primeiramente. Agora n˜ao podemos aplicar a hip´otese, pois s´o est´a na cerca o cavalo que acab´amos de l´a colocar, e n˜ao sabemos de que cor ´e (por isso n˜ao podemos afirmar que haja algum cavalo branco na cerca). Note que a prova de (ii) ´e v´alida para k ≥ 2, ou seja ´e verdade que qualquer que seja k ≥ 2, se forem brancos os k cavalos que estiverem numa qualquer cerca onde est´a pelo menos um branco, ent˜ao s˜ao brancos os k + 1 cavalos que estiverem numa qualquer cerca onde est´a c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 47. 4.1. PRINC´IPIO DE INDUC¸ ˜AO MATEM ´ATICA 39 pelo menos um branco. Conclus˜ao: s´o n˜ao conseguimos mostrar que “todos os cavalos s˜ao brancos” porque P(1) ⇒ P(2). No exemplo2 que se segue, a prova est´a errada, mas o resultado ´e v´alido. Exemplo 16 Pretendemos mostrar que qualquer que seja n ≥ 1, o quadrado de lado 2n pode ser coberto por pe¸cas da forma seguinte, ficando apenas um quadrado 1 × 1 por cobrir. A propriedade verifica-se para n = 1, por exemplo: Para concluir, por indu¸c˜ao, que a propriedade ´e v´alida para todo n ≥ 1, resta mostrar que qualquer que seja k ≥ 1, se os quadrados de lado 2k admitem a cobertura descrita, ent˜ao os quadrados de lado 2k+1 tamb´em admitem. Dado um quadrado de lado 2k+1 podemos dividi-lo em quatro quadrados de lado 2k como se ilustra na figura abaixo. Por hip´otese, cada quadrado de lado de 2k pode ser coberto por pe¸cas da forma descrita acima. Fazemos para cada um dos quatro uma tal cobertura de forma a ficarem a descoberto os quadrados 1 × 1 indicados na figura. Verificamos que os trˆes quadrados 1 × 1 (ao centro) podem ser cobertos por uma pe¸ca, pelo que s´o fica um quadrado 1 × 1 por cobrir. 2k+1 2k 2k1 1 Esta prova n˜ao est´a correcta! Porquˆe? Na demonstra¸c˜ao supusemos que o quadrado por cobrir, podia estar num canto, mas o quadrado que deix´amos depois a descoberto n˜ao ficou num canto. No entanto, podemos corrigir a prova, mostrando um resultado mais forte do que o enunciado inicialmente. . . “a cobertura pode ser tal que o quadrado 1 × 1 a descoberto fica num canto”. Para isso, basta notar que caso n = 1, o quadrado por cobrir est´a num canto, e que para mostrar que ∀n (P(n) ⇒ P(n + 1)) podemos fazer o seguinte. 2 de Maggie Johnson, Introducton to Induction, Lecture Notes CS109, 1998. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 48. 4.2. INDUC¸ ˜AO FORTE 40 2k+1 2k 2k 4.2 Indu¸c˜ao Forte Em certos casos ´e ´util refor¸car a hip´otese de indu¸c˜ao. Exemplo 17 Para mostrar que qualquer inteiro maior do que 1 ´e ou primo ou produto de primos, fixado um k, ´e conveniente assumir que j´a se mostrou que todo i ∈ N tal que 2 ≤ i ≤ k ou ´e primo ou ´e produto de primos porque n˜ao basta ter a decomposi¸c˜ao de k em primos para construir a decomposi¸c˜ao de k + 1. A prova ficaria ent˜ao: • Pela defini¸c˜ao de primo, 2 ´e primo. • Seja k ∈ N tal que k ≥ 2. Suponhamos que j´a mostr´amos que todo i ∈ N tal que 2 ≤ i ≤ k ´e ou primo ou produto de primos. Vamos mostrar que ent˜ao tamb´em podemos concluir que k + 1 ´e primo ou produto de primos. De facto, se k + 1 n˜ao for primo, existem i1, i2 ∈ N {0, 1} tais que k + 1 = i1i2. Como 2 ≤ i1 ≤ k e 2 ≤ i2 ≤ k, sabemos j´a que i1 ´e primo ou produto de primos e i2 ´e primo ou produto de primos. Analisando os quatro casos (a) i1 e i2 primos, (b) i1 e i2 produtos de primos, (c) i1 primo e i2 produto de primos, e (d) i1 produto de primos e i2 primo, concluimos que se k + 1 = i1i2 ent˜ao k + 1 pode-se escrever como produto de primos. Logo, se k + 1 n˜ao ´e primo, k + 1 ´e um produto de primos, ou seja, k + 1 ´e primo ou produto de primos. Mostr´amos que 2 ´e primo (ou produto de primos) e que qualquer que seja k ≥ 2 se todo i tal que 2 ≤ i ≤ n for primo ou produto de primos ent˜ao k + 1 ´e primo ou produto de primos. Portanto, por indu¸c˜ao, n ´e primo ou produto de primos, qualquer que seja n ≥ 2. Proposi¸c˜ao 15 (Vers˜ao forte do princ´ıpio de indu¸c˜ao) Seja P(n) uma condi¸c˜ao na vari´avel n ∈ Z. Dado n0 ∈ Z, se forem satisfeitas as duas condi¸c˜oes (i) e (ii) seguintes, ent˜ao ∀n ≥ n0 P(n). (i) P(n0) ´e verdade; (ii) para todo k ∈ Z, se se tem P(i) para todo i ∈ Z com n0 ≤ i ≤ k, tem-se P(k + 1). c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 49. 4.2. INDUC¸ ˜AO FORTE 41 Exemplo 18 Seja “QS” (´e conhecido por quick-sort) o algoritmo seguinte. 0. Sup˜oe-se dada uma sequˆencia finita de inteiros (pode n˜ao ter elementos). 1. Se a sequˆencia n˜ao tem qualquer elemento ent˜ao indicar como resultado a pr´opria sequˆencia. 2.1 Sen˜ao seja X o primeiro elemento na sequˆencia dada. 2.2 Separar os restantes elementos da sequˆencia formando a subsequˆencia dos menores do que X e a subsequˆencia dos maiores ou iguais que X. 2.3 Aplicar “QS” a cada uma das subsequˆencias: sejam R< e R≥ as sequˆencias resultantes (respectivamente). 2.4. Dar como resultado os elementos de R<, seguidos de X, seguidos dos elementos de R≥. O algoritmo “QS” ordena por ordem crescente a sequˆencia finita de inteiros dada. Para o provar, vamos usar indu¸c˜ao sobre o n´umero de elementos na sequˆencia dada. (i) Se a sequˆencia dada n˜ao tem elementos, ent˜ao podemos dizer que a sequˆencia resultante, que ´e igual `a dada (por 1.) est´a ordenada por ordem crescente. (ii) Seja S uma qualquer sequˆencia de inteiros, e seja n (n ≥ 1 fixo) o seu n´umero de elementos. Suponhamos agora, como hip´otese de indu¸c˜ao, que quando aplicamos “QS” a uma qualquer sequˆencia W de inteiros cujo n´umero de elementos ´e menor do que n, obtemos os elementos de W por ordem crescente. Queremos mostrar que “QS” quando aplicado a S, ordena S por ordem crescente. Como S tem elementos, aplicam-se as instru¸c˜oes 2.1–2.4. Uma vez que nas sub- sequˆencias formadas em 2.2 n˜ao entra o primeiro elemento de S, cada uma delas tem menos elementos do que S. Assim, por hip´otese de indu¸c˜ao, “QS” quando aplicado a cada uma dessas subsequˆencias, ordena-as por ordem crescente. Ent˜ao, as sequˆencias referidas por R< e R≥ (em 2.3) s˜ao respectivamente as sequˆencias de elementos menores do que X e maiores ou iguais a X, ordenadas por ordem crescente. Portanto, o resultado indicado em 2.4 n˜ao ´e mais do que a sequˆencia S ordenada por ordem crescente. Proposi¸c˜ao 16 Os princ´ıpios de indu¸c˜ao forte e fraca s˜ao equivalentes, ou seja se existir uma prova de ∀n ∈ N P(n) por indu¸c˜ao fraca ent˜ao tamb´em existe uma prova por indu¸c˜ao forte. E vice-versa, se existir uma prova por indu¸c˜ao forte ent˜ao existe uma prova por indu¸c˜ao fraca. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 50. 4.2. INDUC¸ ˜AO FORTE 42 Prova: ´E trivial que se existir uma prova dum dado resultado por indu¸c˜ao fraca ent˜ao existe uma prova por indu¸c˜ao forte, pois a mesma prova serve! Portanto, resta-nos mostrar que se existir uma prova por indu¸c˜ao forte ent˜ao existe uma prova por indu¸c˜ao fraca. Para tal, vamos mostrar que se existe uma prova de ∀n ∈ Z+ P(n) por indu¸c˜ao forte, ent˜ao existe uma prova por indu¸c˜ao fraca de ∀n ∈ Z+ (∀i ≤ n P(i)). Podemos depois concluir que existe uma prova por indu¸c˜ao fraca de ∀n ∈ Z+ P(n) porque (∀n ∈ Z+ (∀i ≤ n P(i))) ⇒ ∀n ∈ Z+ P(n). Seja Q(n) a condi¸c˜ao ∀i ≤ n P(i). Mostrar que Q(1) ´e verdade, ´e mostrar que ∀i ≤ 1 P(i), o que equivale a mostrar que P(1) ´e verdade. Como para mostrar que ∀n P(n) por indu¸c˜ao forte, teve que se justificar que P(1) era verdade, basta-nos reproduzir essa justifica¸c˜ao. Para mostrar que ∀n ( Q(n) ⇒ Q(n + 1) ), ou seja que ∀n ( (∀i ≤ n P(i)) ⇒ (∀i ≤ n + 1 P(i)) ) ´e ´util recordar que existe uma prova de ∀n ( (∀i ≤ n P(i)) ⇒ P(n + 1) ) que teve de ser feita para mostrar a proposi¸c˜ao ∀n P(n) por indu¸c˜ao forte. E, como ∀n ((∀i ≤ n P(i)) ⇒ (∀i ≤ n P(i))) tem-se ∀n ((∀i ≤ n P(i)) ⇒ (P(n+1)∧(∀i ≤ n P(i)))). Ou seja, ∀n ∈ Z+ (Q(n) ⇒ Q(n+1)). Assim, mostr´amos que Q(1) era verdade e ∀n ∈ Z+ (Q(n) ⇒ Q(n + 1)). Consequente- mente, pelo princ´ıpio de indu¸c˜ao fraca, concluimos ∀n ∈ Z+ Q(n). 4.2.1 Outras formula¸c˜oes do princ´ıpio de indu¸c˜ao Proposi¸c˜ao 17 Seja A = {n ∈ N | P(n)}, onde P(n) denota “n satisfaz a propriedade P”. Se A satisfizer as condi¸c˜oes (i) e (ii) seguintes, ent˜ao A = N. (i) 0 ∈ A (ii) ∀k ∈ N (k ∈ A ⇒ k + 1 ∈ A) Proposi¸c˜ao 18 Seja A = {n ∈ N | P(n)}, onde P(n) denota “n satisfaz a propriedade P”. Se A satisfizer as condi¸c˜oes (i) e (ii) seguintes, ent˜ao A = N. (i) 0 ∈ A (ii) ∀k∈N ( (∀i ≤ k i∈A) ⇒ k + 1 ∈ A ) c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 51. Cap´ıtulo 5 Rela¸c˜oes Bin´arias 5.1 Rela¸c˜oes Bin´arias de A em B Sejam A e B conjuntos. Designa-se por produto cartesiano de A por B, e denota-se por A × B , o conjunto dos pares ordenados (a, b) tais que a ∈ A e b ∈ B , ou seja A × B = {(a, b) | a ∈ A e b ∈ B} Qualquer subconjunto R do produto cartesiano de A por B diz-se rela¸c˜ao bin´aria de A em B. A nota¸c˜ao a R b ser´a usada com o mesmo significado de (a, b) ∈ R. Exemplo 19 Seja A o conjunto dos alunos, P o conjunto dos docentes, L o conjunto das licenciaturas e C o conjunto das disciplinas das licenciaturas da FCUP. R = {(x, y) ∈ A × A | x e y s˜ao alunos da mesma licenciatura} ⊆ A × A S = {(x, y) ∈ P × C | x ´e professor da disciplina y} ⊆ P × C T = {(x, y) ∈ A × C | x est´a inscrito na disciplina y} ⊆ A × C U = {(x, y) ∈ A × L | x ´e aluno da licenciatura y} ⊆ A × L Os conjuntos R, S, T e U s˜ao rela¸c˜oes bin´arias. 5.1.1 Opera¸c˜oes com rela¸c˜oes bin´arias Como as rela¸c˜oes bin´arias s˜ao conjuntos (de pares ordenados), podemos definir a uni˜ao e a intersec¸c˜ao de rela¸c˜oes bin´arias e ainda a rela¸c˜ao complementar. Sendo R, S ⊆ A × B: R ∪ S = {(a, b) ∈ A × B | (a, b) ∈ R ∨ (a, b) ∈ S} R ∩ S = {(a, b) ∈ A × B | (a, b) ∈ R ∧ (a, b) ∈ S} R = {(a, b) ∈ A × B | (a, b) /∈ R} = (A × B)R c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 52. 5.1. RELAC¸ ˜OES BIN´ARIAS DE A EM B 44 Para al´em destas opera¸c˜oes, definimos tamb´em a no¸c˜ao de inversa e de composta. A rela¸c˜ao inversa de R, representada por R−1, ´e a rela¸c˜ao de B em A definida pelo conjunto R−1 = {(b, a) | (a, b) ∈ R} Dadas duas rela¸c˜oes R ⊆ A × B e S ⊆ B × C, diz-se rela¸c˜ao composta de R e S, e representa-se por RS , a rela¸c˜ao bin´aria de A em C definida por RS = {(a, c) | existe b ∈ B tal que (a, b) ∈ R e (b, c) ∈ S} Em alternativa podiamos escrever S ◦ R, que se lˆe S ap´os R, `a semelhan¸ca da nota¸c˜ao usual para composi¸c˜ao de fun¸c˜oes. Na sec¸c˜ao 5.1.3, veremos que as fun¸c˜oes correspondem a rela¸c˜oes bin´arias que satisfazem condi¸c˜oes adicionais. A rela¸c˜ao inversa corresponde `a no¸c˜ao de imagem rec´ıproca, que associa a cada transformado os elementos do dom´ınio que o tˆem por imagem. Exemplo 20 Seja A = {1, 2, 3}, B = {1, 2, 3, 4, 5}, C = {1, 2}, R = {(1, 2), (1, 3), (2, 2), (3, 4), (3, 5)} S = {(1, 1), (3, 2), (5, 1), (5, 2)} A rela¸c˜ao R−1 ´e {(2, 1), (3, 1), (2, 2), (4, 3), (5, 3)}. R S 1 GG BB„„„„„„„„„„„„„„ 2 2 RRjjjjjjjjjjjjjj 3 GG 2 3 66ssssssssssssssss GG 5 BB„„„„„„„„„„„„„ SSjjjjjjjjjjjjj 1 GG 1 4 RS = {(1, 2), (3, 1), (3, 2)}, j´a que: (1, 2) ∈ RS pois (1, 3) ∈ R ∧ (3, 2) ∈ S; (3, 1) ∈ RS porque (3, 5) ∈ R ∧ (5, 1) ∈ S; (3, 2) ∈ RS porque (3, 5) ∈ R ∧ (5, 2) ∈ S; (1, 1) /∈ RS porque ∀y ∈ B (1, y) /∈ R ∨ (y, 1) /∈ S (de facto, ∀y ∈ B (1, y) ∈ R ⇔ y = 2 ∨ y = 3, mas (2, 1) /∈ S ∧ (3, 1) /∈ S); Do mesmo modo se verifica que, (2, 1) /∈ RS, (2, 2) /∈ RS. Como RS ⊆ {1, 2, 3}×{1, 2}, o que acab´amos de fazer foi uma an´alise exaustiva dos pares poss´ıveis, justificando se pretenciam ou n˜ao a RS. Mais adiante, ser˜ao apresentados alguns resultados te´oricos que facilitar˜ao a determina¸c˜ao da composta. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 53. 5.1. RELAC¸ ˜OES BIN´ARIAS DE A EM B 45 Exemplo 21 Voltemos a considerar o Exemplo 19. Podemos verificar que: {(x, y) ∈ A × P | x ´e aluno duma disciplina de que y ´e professor} = TS−1 R = {(x, y) ∈ A × A | x e y s˜ao alunos da mesma licenciatura } = UU −1 5.1.2 Matriz duma rela¸c˜ao bin´aria Sejam A e B conjuntos finitos e n˜ao vazios, tais que |A| = n e |B| = m. Podemos identificar A com {ai | 1 ≤ i ≤ n} e B com {bj | 1 ≤ j ≤ m}. Qualquer rela¸c˜ao R de A em B pode ser representada por uma tabela – matriz da rela¸c˜ao – do modo seguinte. O elemento que est´a na linha i e coluna j ´e 1 se (ai, bj) ∈ R, e ´e 0 se (ai, bj) /∈ R. Ou seja, se MR for tal matriz, e MR[i, j] representar o elemento na linha i e coluna j ent˜ao tem-se MR[i, j] = 1 se e s´o se (ai, bj) ∈ R MR[i, j] = 0 se e s´o se (ai, bj) /∈ R com 1 ≤ i ≤ n e 1 ≤ j ≤ m. Exemplo 22 Seja A = {1, 2, 3}, B = {1, 2, 3, 4, 5} e R ⊆ A × B, R = {(1, 2), (1, 3), (2, 2), (3, 4), (3, 5)} Ent˜ao, MR =    0 1 1 0 0 0 1 0 0 0 0 0 0 1 1    Matriz da inversa Sejam A = {a1, . . . , an} e B = {b1, . . . , bm}, m, n ∈ Z+ (fixos) e R ⊆ A × B. Ent˜ao MR−1 [i, j] = 1 ⇐⇒ (bi, aj) ∈ R−1 ⇐⇒ (aj, bi) ∈ R ⇐⇒ MR[j, i] = 1 MR−1 [i, j] = 0 ⇐⇒ (bi, aj) /∈ R−1 ⇐⇒ (aj, bi) /∈ R ⇐⇒ MR[j, i] = 0 com 1 ≤ i ≤ m e 1 ≤ j ≤ n, pelo que a matriz da inversa de R ´e a transposta da matriz de R (cada linha da transposta de R ´e uma coluna da matriz R). Exemplo 23 Para R como no Exemplo 22, R−1 = {(2, 1), (3, 1), (2, 2), (4, 3), (5, 3)}. Ent˜ao, MR−1 =         0 0 0 1 1 0 1 0 0 0 0 1 0 0 1         =    0 1 1 0 0 0 1 0 0 0 0 0 0 1 1    t = Mt R c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 54. 5.1. RELAC¸ ˜OES BIN´ARIAS DE A EM B 46 Matriz da composta Sejam A, B, e C conjuntos finitos e n˜ao vazios tais que |A| = n, |B| = m e |C| = p. Dadas duas rela¸c˜oes R e S tais que R ⊆ A × B e S ⊆ B × C, a matriz da rela¸c˜ao composta RS tem n linhas e p colunas e MRS[i, j] = 1≤k≤m (MR[i, k] ∧ MS[k, j]), 1 ≤ i ≤ n, 1 ≤ j ≤ p Notar que por defini¸c˜ao da rela¸c˜ao composta tem-se aiRScj se e s´o se existe bk tal que aiRbk ∧ bkScj. Ou seja, MRS[i, j] = 1 se e s´o se MR[i, k] = 1 ∧ MS[k, j] = 1 para algum k. Ou seja, MRS[i, j] = 1 se e s´o se MR[i, 1] = 1∧MS[1, j] = 1 ou MR[i, 2] = 1∧MS[2, j] = 1 ou . . . ou MR[i, m] = 1∧MS[m, j] = 1, o que justifica a defini¸c˜ao dada para MRS[i, j]. Assim, MRS = MRMS ´e um produto1 de matrizes cujos elementos pertencem ao corpo ({0, 1}, ∨, ∧). Relembre que ∨ e ∧ denotam “ou” e “e” respectivamente e “0” e “1” representam os valores l´ogicos falso e verdadeiro. ∨ 0 1 0 0 1 1 1 1 ∧ 0 1 0 0 0 1 0 1 Exemplo 24 Seja A = {1, 2, 3}, B = {1, 2, 3, 4, 5}, C = {1, 2}, R = {(1, 2), (1, 3), (2, 2), (3, 4), (3, 5)} MR =    0 1 1 0 0 0 1 0 0 0 0 0 0 1 1    S = {(1, 1), (3, 2), (5, 1), (5, 2)} MS =         1 0 0 0 0 1 0 0 1 1         MRS =    0 1 0 0 1 1    =    0 1 1 0 0 0 1 0 0 0 0 0 0 1 1            1 0 0 0 0 1 0 0 1 1         donde, RS = {(1, 2), (3, 1), (3, 2)} ⊆ A × C 1 Deve ficar claro quando estudar corpos e matrizes na disciplina de Elementos de ´Algebra Linear. Para matrizes cujos elementos pertencem ao corpo dos reais (R, +, ∗), se M tem n linhas e m colunas e N tem m linhas e p colunas, a matriz MN tem n linhas e p colunas, sendo MN[i, j] = Pm k=1(A[i, k] ∗ B[k, j]), para 1 ≤ i ≤ n e 1 ≤ j ≤ p (dado pelo produto escalar da linha i de M pela coluna j de N). Quando os elementos pertencem a ({0, 1}, ∨, ∧), a disjun¸c˜ao ∨ substitui a soma + e a conjun¸c˜ao ∧ substitui o produto ∗. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP
  • 55. 5.2. RELAC¸ ˜OES BIN´ARIAS DEFINIDAS NUM CONJUNTO 47 5.1.3 Fun¸c˜oes de A em B Designa-se por fun¸c˜ao de A em B qualquer rela¸c˜ao bin´aria f de A em B tal que para todo a ∈ A existe um ´unico b ∈ B tal que a f b, ou seja, ∀a ∈ A ∃1 b ∈ B a f b. Se a f b ent˜ao escreve-se f(a) = b e diz-se que b ´e a imagem de a por f. O conjunto A ´e o dom´ınio da fun¸c˜ao, e o conjunto B ´e o conjunto de chegada. O subconjunto de B formado pelas imagens dos elementos de A diz-se imagem de A por f, ou contradom´ınio de f. A imagem de A por f denota-se por f(A). Uma fun¸c˜ao ´e injectiva se e s´o se cada elemento de B ´e imagem quando muito dum elemento de A, ou seja f injectiva sse ∀a1, a2 ∈ A ( f(a1) = f(a2) ⇒ a1 = a2 ) Uma fun¸c˜ao ´e sobrejectiva se e s´o qualquer elemento de B ´e imagem de algum elemento de A, ou seja f(A) = B. Uma fun¸c˜ao que ´e sobrejectiva e injectiva diz-se bijectiva. Assim, f ⊆ A × B ´e uma fun¸c˜ao bijectiva se e s´o se • ∀a ∈ A ∃1b ∈ B f(a) = b (fun¸c˜ao), e • ∀b ∈ B ∃1a ∈ A f(a) = b (bijectiva) Desta observa¸c˜ao resulta trivialmente a proposi¸c˜ao seguinte. Proposi¸c˜ao 19 Seja f ⊆ A × B uma fun¸c˜ao. Ent˜ao f −1 ⊆ B × A ´e fun¸c˜ao se e s´o se f ´e bijectiva. Uma fun¸c˜ao diz-se invert´ıvel se a sua inversa ´e uma fun¸c˜ao. Uma fun¸c˜ao parcial de A em B ´e uma rela¸c˜ao bin´aria f de A em B tal que se um elemento a ∈ A tem imagem por f ent˜ao essa imagem ´e ´unica. Notar que a diferen¸ca relativamente `a defini¸c˜ao de fun¸c˜ao ´e n˜ao se impor a condi¸c˜ao de que todos os elementos de A tenham imagens por f. 5.2 Rela¸c˜oes Bin´arias Definidas num Conjunto Seja A um conjunto. Chama-se rela¸c˜ao bin´aria definida em A ou simplesmente rela¸c˜ao bin´aria em A a qualquer rela¸c˜ao bin´aria de A em A. c A. P. Tom´as – Dep. de Ciˆencia de Computadores – FCUP