Vous êtes sur la page 1sur 239

MATEM

ATICA DISCRETA
BENEDITO MELO ACI

OLY
FTC 2001
2
Conte udo
1 Cinco algoritmos importantes nos inteiros 5
1.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Algoritmos para os inteiros . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 Algoritmos de mundanca de base 19
2.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Os inteiros em diferentes bases . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Representa cao dos inteiros num computador . . . . . . . . . . . . . . . . . 27
2.4 N umeros reais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3 Conjuntos, Func oes e Relacoes 43
3.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3 Func oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.4 Relac oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4 Logica 71
4.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2 Raciocinando com hipoteses logicas . . . . . . . . . . . . . . . . . . . . . . 80
4.3 Predicados & Quanticadores . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.4 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5 Provas 91
5.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6 Recursao 111
6.0.1 EXERC

ICIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3
4 CONTE

UDO
7 Estruturas Algebricas 135
7.1

Algebras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.2 Estruturas ordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.3 Corpos nitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.4 EXERC

ICIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
8 Grafos e arvores 167
8.1 Introduc ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
8.2 Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
8.3

Arvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
8.4

Arvores geradoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
8.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9 Contar 195
9.1 Tecnicas de contar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
9.2 O binomial e teoremas multinomiais . . . . . . . . . . . . . . . . . . . . . . 213
9.3 Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
9.3.1 Permutac oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.4 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Bibliograa 231
Captulo 1
Cinco algoritmos importantes nos
inteiros
1.1 Introducao
A seguir apresentaremos as solucoes algortmicas para cinco problemas envolvendo n umeros
inteiros. Deveremos aprender como ler e usar esses algoritmos, conhecer os fatos apre-
sentados sobre os inteiros, primos e o maior dos divisores comuns. Num nvel mais alto,
deveremos ser capazes de ler e usar algoritmos similares quando encontr a-los e projetar
nossos proprios algoritmos para resolver problemas sobre os inteiros.
1.2 Algoritmos para os inteiros
Um computador eletronico moderno(digital) computa func oes no mais baixo nvel, usando
as mudan cas de estados de uma corrente eletrica de ligado(0) para desligado(1), alteran-
do a voltagem entre dois valores ou revertendo a polaridade de material magnetico. Nao
teremos que saber muito mais sobre como isso e feito, mas neste nvel basico uma compo-
nente da maquina tem dois estados que podem ser tomados como representando os dgitos
0, 1, ou os rotulos logicos verdadeiro(t), falso(f), `a nossa conveniencia. Uma estrutura
matematica construda neste fundamento digital e a estrutura dos n umeros inteiros e por
isso comecaremos com ela aqui. Uma maneira natural de instruir o computador para
efetuar uma tarefa e por meio de um algoritmo, que para nos signica um procedimento
passo a passo para realizar uma tarefa. Para um estudante de computacao um algoritmo
esta entre um problema a ser resolvido e o programa para resolve-lo. Para um estudante
de matematica um algoritmo representa uma soluc ao construtiva para um problema em
oposic ao a um argumento de que a soluc ao existe. Davis e Hersh
1
discute o contraste
1
Davis, P.J.and Hersh, R., (1981), The Mathematical Experience, Havester.
5
6 CAP

ITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS


entre a abordagem algormica e a abordagem dialetica(baseada em argumentos) para o
matematico, num artigo bastante legvel.
Entretanto, combinar algoritmos e inteiros numa primeira introduc ao tem um signi-
cado um pouco mais profundo que a importancia desses assuntos por si so. Por toda a
escola secundaria um objetivo foi inserir os inteiros dentro do sistema de n umeros reais,
usando os mesmos smbolos para as operac oes de adic ao, multiplicac ao, subtrac ao e di-
visao para enfatizar a ideia. Uma observac ao mais acurada nos algoritmos para efetuar
essas operac oes deixa claro que existem diferentes sistemas de n umeros que precisam ser
manipulados de maneiras diferentes por maquinas como o computador.
A abordagem algortmica e encontrada nos primodios da matematica, tendo sido sem-
pre uma de suas partes importante. Os algoritmos sao importantes para nos porque eles
nos dao um tipo de solucao a um problema que pode ser convertida num programa para
um computador. Para escrever um programa ou entende-lo qundo ele foi escrito por outra
pessoa e necessario entender seu objetivo e a sua estrutura. Um algoritmo representa a
estrutura de um programa deixando de fora os detalhes desnecessarios. O processo de
criar um programa a partir de um algoritmo e chamado sua implementacao.
Nao existe um metodo universalmente aceito de escrever algoritmos. Usaremos mais
de uma maneira ao longo de nosso curso. Usaremos a linguagem chamada pseudocodigo,
tao proxima da linguagem natural quanto possvel. Este tipo especial de linguagem e
devido ao fato de que algumas instruc oes basicas ocorrem tao frequentemente que seria
util reconhece-las como uma forma padrao.
Comentario historico: O nome algoritmo deriva do matematico arabe Mohammed
al-Khwarismi(825 d.c.), que escreveu um livro sobre aritmetica no qual e dado uma expli-
cacao completa sobre os numerais Hindus. O livro foi traduzido para o Latim(De Numero
Indorum) e tornou-se conhecido na Europa. O esquema de numeracao usando numerais
hindus veio a ser chamado algorismi, como uma corruptela de al-Khwarismi. O sigicado
de algoritmo e agora qualquer especie de procedimento. Em computacao, muitos auto-
res(por exemplo, Knuth, 1969, p.4)
2
enfatiza que a aplicac ao do algoritmo para dados de
entrada validos deve terminar num n umero nito de etapas.
Divisao inteira
O conjunto dos n umeros inteiros, ..., 3, 2, 1, 0, 1, 2, 3, ..., denotado por Z, e bastante
conhecido. Sabemos os signicados dos smbolos = , < , e denidos
sobre os inteiros. Por exemplo, sabemos se a = b e verdadeiro ou falso para qualquer
par de inteiros a, b em Z. Entretanto, pode nao ser bem claro o que queremos signicar
com divisao. Suponha que uma pessoa ou uma maquina foi instruda para dividir a por
b.
Para a = 12, b = 3 nao existe d uvida o que signica.
2
Knuth,D.E.,(1969), The art of Computer Programming, Vol1, Fundamental Algorithms, rev. edn,
Addison-Wesley.
1.2. ALGORITMOS PARA OS INTEIROS 7
Para a = 13, b = 5 nao esta claro se queremos como resposta 2.6 ou 2, com resto 3. O
problema fundamental nao e o que e correto mas como a intenc ao deve ser tornada
clara. Uma maneira de fazer isso e denir smbolos diferentes para cada operac ao que
for necessaria. Outro metodo seria usar o mesmo smbolo signicando coisas diferentes,
declarando-os como tendo comportamentos diferentes para tipos de n umeros diferentes.
Exploraremos a tarefa de providenciar instruc oes precisas observando a divisao de inteiros.
O processo comum de dividir um inteiro a por um inteiro b da quociente q e resto r.
Os fatos estao contidos no seguinte teorema.
Teorema 1 (Teorema da divisao). Para todos os inteiros a, b, (b ,= 0), existem inteiros
q, r, unicos tais que
a = b q +r e 0 r < [b[.
A convencao em matematica e nao usar um smbolo especial, como *, para a mul-
tiplicacao. Por isso escreveremos bq, signicando b multiplicado por q. Onde for
necessario maior clareza usaremos como multiplicacao, como, por exemplo, em 3 4.
Os smbolos [b[ sao usados para indicar valor abosoluto de b, como em [ 7[ = [7[ = 7.

E uma tradicao chamar o teorema da divisao de algoritmo da divisao. Entretanto,


o teorema nao identica um procedimento passo a passo para obter q, r de a, b. Desse
modo, no nosso contexto, nao e apropriado chamar um teorema de algoritmo.
Problema 1: Como deveremos calcular o resto e o quociente da divisao de um in-
teiro positivo por outro? Existem varias maneiras de resolver este problema, dependendo
de quais func oes estao disponveis em nossa calculadora ou computador. Entretanto, a
operac ao de subtracao seguramente esta presente em qualquer maquina que manipula
inteiros, por isso basearemos o seguinte algoritmo na ideia de que divisoes de inteiros
correspondem `a repetic ao de subtrac ao.
algoritmo 1(Divisao inteira positiva) Calcular o resto e o quociente da divisao de
um inteiro positivo a por um inteiro positivo b.
No algoritmo abaixo sao dados valores iniciais `as variaveis a e b, pela entrada a partir
de alguma fonte externa, talvez por meio de um teclado ou talvez de algum programa de
computador que chamou este algoritmo, com a e b contendo os valores iniciais atraves da
aplicacao. Sao atribudos valores iniciais `as variaveis q, r durante a aplicacao do algoritmo
e, claro, esses valores podem ir se alterando repetidamente enquanto a aplicac ao continua.
Cada alterac ao diz-se uma atualizacao do valor da variavel.
Entradas: a,b, inteiros, a > 0 e b > 0.
Sadas: q, r, inteiros. O quociente q e o resto r devem satistifazer a denic ao contida
no teorema acima.
8 CAP

ITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS


Metodo:
1. Dar a q o valor 0.
2. Dar a r o valor a.
3. Enquanto r b :
4. Adicione um ao valor de q
5. Subtraia b do valor de r.
As linhas estao numeradas para ajudar na explicac ao do funcionamento do algoritmo.
Nao e comum enumerar as linhas num algoritmo. As instruc oes nas linhas 1 e 2 sao
efetuadas uma apos a outra, na sequencia obvia. Observe que atribuindo esses valores a
q e r satiszemos a parte da condicao de sada(a=bq+r). A proxima instrucao esta na
linha 3 que e um teste para decidir se o r esta fora do intervalo requerido para o resto.
Se a sentenca r b for verdadeira, as instruc oes da linhas 4 e 5 sao efetuadas e entao o
algoritmo retorna para o teste enquanto, na linha 3. Se a sentenca r b for falsa, o
algoritmo termina. Caso contrario, a sequencia linha 4, linha 5, linha 3 e repetida. Estas
tres instrucoes formam o que e conhecido por laco. Cada vez que o algoritmo passa
pelo laco o valor de r e reduzido de tal modo que apos um n umero(nito) de etapas do
teste a linha 3 falha, terminando o algoritmo com o valor correto para o quociente e o
resto armazenado em q e r, respectivamente.
Exemplo 1 Achar o quociente e o resto quando 33 e dividido por 7.
Identicar as variaveis no algoritmo 1, acima, e listar seus valores numa tabela como
zemos no algoritmo.
a b q r (r b)
valores iniciais 33 7 0 33 t
apos laco um 1 26 t
dois 2 19 t
tres 3 12 t
quatro 4 5 f
Quando 33 e dividido por 7 o quociente e 4 e o resto e 5.
A expressao (r b) pode ser visto como os valores verdadeiro(t) ou falso(f) e por
nenhum outro. Esta expressao e chamada uma expressao booleana.
Problema 2: Qual e o quociente e o resto quando um inteiro e dividido por outro,
sem nenhuma restric ao de sinal?
Existem quatro possibilidades a serem consideradas, tomando a positivo ou negativo
com b positivo ou negativo. Colocaremos coment arios em italicos no algoritmo para ajudar
seu entendimento.
1.2. ALGORITMOS PARA OS INTEIROS 9
Algoritmo 2 (Divisao inteira): Achar o quociente e o resto quando um inteiro a for
dividido por um inteiro b, onde b ,= 0.
Entradas: a, b, inteiros, onde b ,= 0.
Sadas: q, r inteiros. O quociente q e o resto r, devem satisfazer a condicao
a = bq +r e 0 r < [b[.
Metodo:
1. Dado q com valor inicial 0.
2. Dado r com valor inicial a.
Caso 1 : a 0 (a positivo ou 0)
enquanto r [b[
_
_
_
substitua r por r [b[
se b > 0 entao incremente q de 1
caso contr ario(se b < 0 ent ao) decremente q de 1.
Caso 2: a < 0
enquanto r < 0
_
_
_
substitua r por r +[b[
se b > 0 ent ao decremente q de 1
caso contr ario(se b < 0 ent ao) incremente q de 1
Exemplo:
Aplicar o algoritmo da divisao inteira para -15 dividido por -7.
O valor de a e -15. O valor de b e -7. O algoritmo seleciona o caso 2(a < 0)) e, apos
o se, seleciona o ramo caso contr ario (b < 0).
a b q r (r < 0)
-15 -7 0 -15 t
1 -8 t
2 -1 t
3 6 f
Quando -15 for dividido por -7 o quociente e 3 e o resto e 6.
O algoritmo 2 e mais complicado que o algoritmo 1. Faz sentido checar que ele, de
fato, fornece as sadas corretas.
10 CAP

ITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS


Introduzimos uma assertiva chamada precondicao para checar se a entrada esta correta
e uma poscondicao para checar se a sada esta correta para uma dada entrada.
Como a, b, q e r sao inteiros, a precondic ao para o algoritmo da divisao e a expressao
b ,= 0 e a poscondic ao para o algoritmo e a expressao a = bq + r e 0 r [b[, onde
q, r tem seus valores nais de sada. De hora em diante escreveremos para o algoritmo da
divisao:
precondicao = (b ,= 0)
poscondi cao = (a = bq +r e 0 r < [b[)
A precondicao e testada nas vari aveis de entrada a, b antes do algoritmo ser aplicado.
A poscondicao e testada usando os valores das vari aveis de entrada que se vericam antes
da aplicacao do algoritmo e os valores da variaveis de sada q, r depois do algoritmo ser
aplicado. Devemos tomar algum cuidado com a explicac ao acima, pois as vari aveis(por
exemplo, q e r) alteram seus valores durante a execucao do algoritmo. Cada func ao
de condicao e denitivamente verdadeira ou denitivamente falsa no momento de sua
avaliac ao.
Agora, se para cada par de entradas possveis a, b a precondicao for verdadeira e apos a
aplicacao do algoritmo a correpondente poscondicao for verdadeira, entao o algoritmo deve
estar correto. De fato, nao podemos checar todas as innitas possibilidades de entradas.
Entretanto, se no mnimo checarmos as quatro possibilidades de a positivo e negativo
com b positivo e negativo, aumentar a nossa conanca no algoritmo. Se o algoritmo for
implementado como um programa de computador, entao as condicoes podem ser avaliadas
automaticamente cada vez que o programa for executado.
Para o exemplo acima no qual a = 15, b = 7:
precondicao(15, 7) = (7 ,= 0)
poscondi cao(15, 7, 3, 6) = ((15 = 7 3 = 6) e (0 6 < 7))
= t
Exempo: O algoritmo da divisao inteira produz sada q = 3, r = 6 da entrada
a = 15, b = 7. Mostre que o algoritmo satisfaz sua especicac ao neste caso.
Temos de mostrar que, se os dados de entrada satiszerem a precondicao e o algoritmo
produzir a sada estabelecida, ent ao a poscondicao sera verdadeira. Portanto:
precondic ao(15, 7) = (7 ,= 0)
= t
poscondicao(15, 7, 3, 6) = ((15 = 7 (3) + 6 e (0 6 < 7))
= t
1.2. ALGORITMOS PARA OS INTEIROS 11
Obs 1: Em ultima instancia, gostaramos de ser capazes de provar que o algoritmo da
divisao de inteiros esta correto para todas as suas entradas validas. Isto e, para inteiros
a, b:
se precondicao(a,b) for verdadeira e o algoritmo aplicado a (a, b) produzir a sada (q, r),
entao a poscondicao(a,b,q,r) tambem sera verdadeira.
Para atingir esse objetivo estudaremos logica e provas matematicas mais adiante.
Obs 2: Algumas linguagens de programac ao contem operadores que calculam q e r
automaticamente. Por exemplo, em C++ q e calculado por a/b e r por a%b.
Primos
Denicao 1 (Divisvel) Um inteiro b diz-se divisvel por um inteiro a se e somente se
b = qa para algum inteiro q. Dizemos que a e um fator de b.
Denicao 2 (primos) Um inteiro positivo p e primo se ele for diferente de 1 e so for
divisvel por 1 e ele proprio.
Os inteiros positivos maiores que 1 que nao sao primos sao chamados compostos. Os
primeiros inteiros positivos primos sao: 2, 3, 5, 7, 11, 13, 17, 19, 23,... Qualquer inteiro
positivo maior que 1 ou e primo ou pode ser fatorado em primos, por exemplo,
128 = 2
7
45 = 3
2
5.
Por experiencia, sabemos que os fatores primos de um n umero sao sempre os mesmos,
nao importa como estabelecemos o processo de fatorizac ao.

E possvel provar que a
fatorizacao de um composto em primos e unica.
Teorema 2 (Teorema fundamental da aritmetica) Todo n umero inteiro positivo maior
que 1 pode ser expresso como um produto de primos. Esta expressao e unica a menos da
ordem dos fatores.
A frase produto de primos inclui a possibilidade de um unico primo.
O problema abaixo e um bom exemplo de um problema de decisao. Esses tipos de
problemas ocorrem com frequencia. O objetivo e determinar se uma dada assertiva e
verdadeira ou falsa. Por isso denimos uma vari avel booleana no algoritmo(neste caso a
variavel primo).
Problema 3. O inteiro positivo n e primo?
Esta questao parece muito simples para exigir o uso do computador. Se o n umero for
muito grande certamente que o computador sera de bastante ajuda. Fazendo a pergunta
21509 e um primo? ou 432521 e um primo?

E claro que usando uma calculadora ela
ajuda a organizar a sequencia de calculos, minimizando o trabalho. Poderamos testar a
divisibilidade para n ate encontrarmos um fator ou todos os fatores possveis terem sidos
tentados. Entretanto, cada teste da divisibilidade nos fornece dois fatores.
12 CAP

ITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS


Se 2 nao e um fator, ent ao n/2 tambem nao e. Qualquer fator possvel esta agora
entre 2 e n/2. O intervalo contendo os fatores possveis encolhe sempre que cada teste
falha, ate a ultima possibilidade ser testar

n, se tal n umero for um inteiro.
A sequencia de fatores possveis a tentar e portanto 2, 3, ...

n|, e se todos esses


falharem podemos garantir que o n umero e primo.
O smbolo | denota a func ao oor, denida por
floor(x) = x| =
_
x, se x for inteiro
caso contrario, o maior inteiro menor que x
Exemplos: 3.9| = 3, 3.2| = 4, 5| = 5.
Algoritmo 3 (Teste de primo). Para testar se um inteiro n e primo.
Entrada: um inteiro n. O inteiro a ser testado.
A precondicao e n > 2.
Sada: primo, booleano.
A poscondic ao e (primo =
_
t se e primo,
f caso contrario.
_
Metodo:
Inicializar a com 2.
(a e o inteiro que esta sendo testado como um possvel fator)
Inicializar primo com t.
enquanto a

n e primo for t:
_

_
se a divide n exatamente ent ao
dar a primo o valor f
caso contrario
incrementar o valor de a por 1
O algoritmo esta correto? ele e eciente?

E facil de entende-lo?
Observe tambem que o algoritmo fornece o resultado correto para n = 2, mas esse
valor foi excudo da precondic ao. Alterando a precondic ao para n 2, seria possvel
fornecer 2 como entrada. A nova precondic ao diz-se mais fraca que a original, pois
ela adimite mais entradas validas. So poderemos mostrar que um algoritmo esta correto
estabelecendo que ele fornece os resultados corretos para todas as entradas. Poderemos
mostrar que ele esta incorreto estabelecendo que ele falha para alguma entrada.
Corretude e precondicao mais fraca serao tratados mais adiante em nosso curso.
Examinaremos tambem no decorrer do nosso curso a questao da eciencia.
1.2. ALGORITMOS PARA OS INTEIROS 13
A questao da legilibilidade tem um conte udo subjectivo, embora de grande importancia
para o prossional da computacao. Veremos algoritmos escritos de muitas maneiras, em
diferentes livros, e por isso deveremos ser capazes de ler diferentes estilos.
Problema 4. Quais sao os fatores primos de um inteiro maior do que 1?
Para qualquer inteiro positivo, n maior que 1, pretendemos produzir uma lista de
seus fatores primos, repetindo os fatores quando apropriado. Por exemplo, 12 tem como
fatores primos 2, 2, 3.

E necessario testar a divisibilidade de n, para os n umeros entre 2 e

n, em ordem. Entretanto, quando um fator e encontrado, continuamos dividindo-o por


esse fator, enquanto tivermos obtendo sucesso. Este procedimento acessegura que cada
fator encontrado e primo. Por exemplo, 12 nao e encontrado como um fator primo de 42,
pois todos os fatoers 2 e 3 terao sido removidos antes que o teste para 6 seja aplicado.
As variaveis necessarias para este algoritmo sao o divisor de tentativa, denotado
por a e o quociente que ca apos dividir os sucessivos divisor de tentativa , denotado
por q. Em computac ao e comum dar nomes autoexplanatorios `as variaveis tais como
divDeTentativa e quociente.
Algoritmo 4(Fatores primos). Achar os fatores primos de um inteiro maior que 1.
Abaixo descrevemos o algoritmo para fatores primos.
Entradas: um inteiro n.
Precondic oes: n > 1,
Sadas: Uma lista de inteiros f = [f
1
, ..., f
k
].
Poscondi coes: cada um dos f
i
s e primo e n = f
1
... f
n
.
3
Metodo:
Seja f a lista vazia, [ ]
Atribua a q o valor n,
(q e o quociente apos a mais recente divisao).
Atribua a a o valor 2.
(a e o divisor tentativa corrente)
3
Observe que os f
i
s nao sao necessariamente distintos.
14 CAP

ITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS


Enquanto a

q:
se q for disvel por a entao
coloque f em a
atribua a q o valor q/a
Caso contrario
incremente a de 1
Coloque f em q
Exemplo: Achar os fatores primos de 60 usando o algoritmo 4.
n f q a a

q ramo
60 [ ] 60 2 t ramo 1
[2] 30 2 t ramo 1
[2,2] 15 2 t ramo 2
[2,2] 15 3 t rama 1
[2,2,3] 5 3 f sada do laco
f = [2, 2, 3, 5]
O maximo divisor comum
Cometario historico. Euclides viveu acerca de 300 anos antes de Cristo. Ele organizou
a matematica Grega classica em treze livros chamado Os Elementos. Seu algoritmo para o
maximo divisor comum, dado abaixo, esta no livro VII. Euclides estabeleceu a tradic ao de
construir uma sequencia logica de teoremas ou proposicoes fundamentados em axiomas
e denic oes. Os Elementos e o sistema de raciocnio axiomatico usado nele teve uma
imensa inuencia no desenvolvimento do pensamento matematico, particularmente em
prova matematica.
O maximo divisor comum de dois n umeros inteiros m e n e o maior inteiro que divide
ambos. O maximo divisor comum e denido para todos os pares de inteiros em que ambos
nao sejam nulos. A notac ao usual e mdc(m,n).
Por exemplo,
(1) mdc(91, 13) = 13, (2) mdc(3, 6) = 3, (3) mdc(8, 0) = 8
Problema 5. Qual e o maximo divisor comum de dois inteiros m e n, nao nulos?
Se m ,= 0, mdc(m, 0) = [m[ = mdc(0, m).
Se m ,= 0 e n ,= 0 ent ao o mdc(m,n)=mdc(n,m)=mdc([m[, [n[). Portanto, sera bas-
tante achar um algoritmo para mdc(m,n), onde m n n > 0.
1.2. ALGORITMOS PARA OS INTEIROS 15
Uma abordagem factvel para este problema seria comparar a fatorizacao em primos
de m e n, usando o algoritmo 4. No entanto, existe disponvel um algoritmo muito mais
eciente.
Algoritmo 5(Euclides). Achar o maximo divisor comum de dois inteiros positivos.
Entrada: m, n inteiros.
Precondic oes: m n > 0.
Metodos: Dado a com o valor de m e b com o valor de n. Calcular r, o resto, quando
a e dividido por b.
Enquanto r ,= 0 :
atribua a b o valor a
atribua a r o valor b
recalcule r, o resto, quando a e dividido por b
atribuir a d o valor de b.
Sadas: inteiro d.
Poscondi coes: d divide m e d divide n e se c divide m e n, entao c divide d.
Exemplo: achar o mdc de 2436 e 1015.
As etapas sao:
a b r r=0
2436 1015 406 f
1015 406 203 f
406 203 0 t
Portanto, o mdc(2436, 1015) = 203
A poscondicao para o algoritmo de Euclides
A poscondic ao para o algoritmo de Euclides e difcil de aplicar diretamente. Embora a
sada d seja facil de checar, como saberemos que ela e o mdc? Como provaremos que o
algoritmo termina corretamente? A chave e que no m de cada passagem pelo laco, o valor
de mdc(a,b) esta inalterado, embora a e b tenham se alterados. A identicacao de tais
propriedades invariantes e muito importante na prova de que o laco opera corretamente.
Daremos a seguir a prova tradicional do algoritmo de Euclides.
16 CAP

ITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS


Prova do algoritmo de Euclides:
A prova de um algoritmo deve convencer ao leitor de que ele termina corretamente, num
n umero nito de etapas.
O algoritmo requer uma sequencia de divisoes inteiras(etapas 1, 3). Denote os su-
cessivos restos por r
1
, r
2
... e os quocientes por q
1
, q
2
, .... Por esse meio evitamos
a possibilidade de confusao que pode ser causada pelo fato de que a e b alteram seus
valores ao longo do processo.
Para provar que o algoritmo esta correto e preciso duas coisas. Devemos mostrar que
ele termina e que termina com o mdc correto.
Terminacao mostra que o algoritmo termina.
Pelo teorema da divisao(teorema 1) temos:
m = n q
1
+r
1
e 0 r
1
< n
n = r
1
q
2
+r
2
e 0 r
2
< r
1
r
1
= r
2
q
3
+r
3
e 0 r
3
< r
2
....
r
j2
= r
j1
q
j
+ 0
Tomando todas as desigualdades temos n > r
1
> r
2
..., de modo que esta e uma
sequencia decrescente de inteiros nao megativos e, portanto deve atingir zero. Su-
ponha que isto acontece apos j divisoes. Ent ao, r
j
= 0, e assim o algoritmo termina
com a vari avel d igual a r
j1
.
Terminacao correta. Mostrar que r
j1
e o mdc de m e n.
4
Como o mdc(m,n) divide m e n, pelas as equac oes do item 1, o mdc(m,n) tambem divide
r
1
. Portanto, o mdc(m,n) divide mdc(n,r
1
).
Analogamente, dessas equac oes mostramos que o mdc(n,r
1
) divide m e, portanto, divide
mdc(m,n).
Portanto,
mdc(m, n) = mdc(n, r
1
) = mdc(r
1
, r
2
) = ... = mdc(r
j1
, r
j
) = r
j1
que mostra que o algoritmo termina corretamente.
4
A prova depende de mostrar que, embora a e b se alterem durante o processo de execucao do
algoritmo, o mdc(a,b) retorna o mesmo valor no m de cada passo no laco. Dizemos que esta variavel e
um invariante do laco.
1.3. EXERC

ICIOS 17
1.3 Exerccios
1. Use o algoritmo 2 para achar o quociente e o resto quando:
(a) 18 e dividido por 7.
(b) 18 e dividido por -7.
(c) -18 e dividido por 7.
Em cada caso calcular a precondic ao e a poscondic ao.
2. Qual e o maior n umero que deve ser testado como um fator possvel, antes que seja
certo que 1987 e primo?
3. Determine se 11729 e primo.
4. Um n umero perfeito e aquele para o qual a soma de todos os seus fatores menores
que ele e igual a este n umero. Portanto, 6 e um n umero perfeito. De fato, 1, 2 e 3
sao fatores de 6 cuja soma e 6. Construir um algoritmo para testar se um n umero
e perfeito.
5. Achar o maximo divisor comum de 3589 e 999, usando o algoritmo de Euclides. O
limite superior para o n umero de divisoes exigidas e
2log
2
999|.
Calcule este limite superior.
6. Use o algoritmo 4, dos fatores primos, para achar os fatores primos de 61 e 64. Quais
dessas entradas faz mais uso do laco enquanto.
7. Seja m um inteiro positivo maior que 1. Ent ao, os inteiros 0, 1,...,(m-1) mais as ope-
rac oes de adicao e multiplicacao, denidas abaixo, constitui um sistema numerico,
chamado Z
n
.
A adicao de um par de n umeros x, y em Z
n
, e denida cono r, o resto da divisao
de (x +y) por n. Escrevemos
x +y r mod n
e dizemos que x+y e congruente a r modulo m. Por exemplo, Z
11
consiste dos
inteiros 0, 1, 2,...,10, e
18 CAP

ITULO 1. CINCO ALGORITMOS IMPORTANTES NOS INTEIROS


3 + 5 8 mod 11
7 + 9 5 mod 11.
A multiplicacao de um par de n umeros x, y, em Z
n
, e denido como sendo s, o
resto da divisao de xy por por n. Por exemplo,
3 3 6 mod 11,
7 9 8 mod 11.
onde 8 e o resto da divisao de 63 por 11.
Construa um algoritmo, usando subtracao de inteiros, para a adicao de n umeros
em Z
7
. O algoritmo deve aceitar qualquer par de n umeros em Z
7
e devolver
um n umero de Z
7
.
8. O algoritmo de Euclides, 5, usa divisao inteira.
A divisao pode ser efetuada por subtracoes repetidas(algoritmo 1).
Projetar um algoritmo do maximo divisor comum que usa subtracao diretamente.
9. Le Donald Knuth(1969, pp, 1-9) sobre algoritmos.
10. Le Philip Davis and Reuben Hersh(1981, pp. 180-6).
Captulo 2
Algoritmos de mundanca de base
2.1 Introducao
A representacao dos inteiros em outras bases diferentes de 10, particularmente 2, 8 e 16
e o principal assunto deste captulo. Daremos exemplos para mostrar como os algoritmos
usuais para a adic ao, a multiplicacao e assim por diante, sao modicados quando os
inteiros positivos sao expressos em bases nao decimais. Em seguida, examinaremos uma
maneira como os inteiros sao representados no computador. Finalmente, discutiremos os
n umeros reais. Embora os mesmos smbolos sejam usados para operac oes sobre os reais
e os inteiros, os algoritmos subjacentes sao necessariamente diferentes. Os algoritmos
sao apresentados para mostrar como funcionam os sistemas de bases e as operacoes.
Neste captulo deveremos aprender a usar os algoritmos e mostrar os fatos sobre bases e
n umeros reais. Num nvel mais avan cado deveremos ser capazes de projetar algoritmos
para resolver problemas e usar algoritmos projetados por outros.
Comumente, os n umeros sao representados usando dez dgitos. A posicao de cada
dgito determina seu valor sobre uma base de dez. Por exemplo, a cadeia(string) de
dgitos 325 e uma notac ao para
300 + 20 + 5
ou
3 10
2
+ 2 10
1
+ 5 10
0
Entretanto, nao e necessario que a base seja 10, e por razoes de hardware as bases
2(binaria), 8(octal) e 16(hexadecimal) sao usadas com frequencia nos computadores. As
razoes matematicas que suportam essas escolhas sao
19
20 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


1. que as tabuas de adic ao e multiplicacao em binario tem somente quatro entradas,
diferentemente das 20 na base 10.
2. Os algoritmos para mudar de base sao muito ecientes.
2.2 Os inteiros em diferentes bases
No que segue, um inteiro diferente de zero e representado na base x signica o inteiro
e escrito na forma
sa
k
a
k1
...a
1
a
0
(base x)
onde s, o sinal do inteiro, e + ou -, e a
i
e um inteiro tal que a
k
,= 0 e para qualquer
outro i, 0 a
i
< x. A base, x, e um inteiro maior ou igual a 2. O n umero tem o valor
s(a
k
x
k
+a
k1
x
k1
+... +a
1
x
1
+a
0
x
0
).
Esta expressao e chamada a expansao literal do n umero.
O inteiro zero e representado por 0 em todas as bases. Ele nao e negativo nem
positivo, portanto nao tem sinal. Se s e positivo, e comum omitir o sinal.
A frase um inteiro e representado como uma cadeia de comprimento n na base x
siginica o inteiro e escrito na base x, com sucientes zeros na frente para tornar a cadeia
de n dgitos. Se a base e 2, a cadeia pode ser referida como uma cadeia binaria. Se a
base e 10, a cadeia pode ser referida como uma cadeia decimal.
Exemplo 2 Dar a expansao literal de
325(base 10), 1101(base 2), 1703(base 8)
325(base 10) = 3 10
2
+ 2 10
1
+ 2 10
0
-1101(base 2) = (1 2
3
+ 1 2
2
+ 0 2
1
+ 1 2
0
1703(base 8) = 1 8
3
+ 7 8
2
+ 0 8
1
+e 8
0
O sistema hexadecimal requer a invens ao de seis novos dgitos. Os n umeros decimais
10, 11, 12, 13, 14, 15 sao representados por A, B, C, D, E e F, respectivamente.
Exemplo 3 Dar a expansao literal de A13B(base 16).
10 16
3
+ 1 16
2
+ 3 16 + 11
A notac ao 325
10
, 1101
2
, 1703
8
, A13B
16
tambem sera usada para indicar a base.
2.2. OS INTEIROS EM DIFERENTES BASES 21
Exemplo 4 Representar 325
10
como uma cadeia decimal de comprimento 8.
00000325
Exemplo 5 Representar 1101
2
como uma cadeia decimal de comprimento 8.
00001101
Mudanca de base
O sinal de um inteiro nao e afetado quando se troca sua base. Portanto, sera suciente
dar as regras para os inteiros positivos.
Mudando de decimal
Problema 1 Como poderemos trocar a representacao de um inteiro da base 10(decimal)
para uma outra base?
O metodo envolve repetidas divisoes inteiras do n umero pela base. O metodo sera
ilustrado pelo seguinte exemplo.
Exemplo 6 Converter 380
10
para octal.
No calculo, sucessivos quocientes serao divididos pela base ate o quociente ser reduzidos
a zero. Os restos serao registrados, da direita para a esquerda, como dgitos octais.
380 = 8 47 + 4 (dividido por 8, registra 4)
47 = 8 5 + 7 (dividido por 8, registra 7)
5 = 8 0 + 5 (dividido por 8, registra 5)
O resultado e 380
10
= 574
8
. O resultado pode ser vericado substituindo os quocientes
sucessivos de volta na linha acima, portanto:
380 = 8 (8 (8 0 + 5) + 7) + 4 (decimal)
= 5 8
2
+ 7 8
1
+ 4 8
0
(decimal)
= 574
8
Converter 380
10
para hexadecimal.
Os sucessivos quocientes sao divididos pela base ate o quociente ter sido reduzido a
zero. Os restos sao registrados, da direita para a esquerda, como dgitos decimais.
380 = 16 23 + 12 (dividido por 16, registra C)
23 = 16 1 + 7 (dividido por 16, registra 7)
1 = 16 0 + 1 (dividido por 16, registra 1)
O resultado e 380 = (1)(7)(12) = 17C(base 16). Este resultado pode ser vericado
substituindo sucessivamente o quociente no sentido inverso na linha acima. Assim:
380 = 16 (16 (16 0 + 1) + 7) + 12 (decimal)
22 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


= 1 16
2
+ 7 16
1
+ 12 (decimal)
= 17C(base 16)
O algoritmo abaixo descreve o metodo na sua forma mais geral.
Algoritmo 1 Mudar a representacao de um inteiro de decimal para uma outra base.
Entrada: Um inteiro n > 0, representado em decimal.
Um inteiro b 2. (b e a nova base.)
Precondicoes: Um inteiro n > 0, representando o decimal, e b 2.
Sada: n, representado na base b.
Poscondicoes: A expansao literal de n na base b.
Metodo:
q n (q recebe o valor inicial n)
Enquanto q > 0
Dividir q por b, obtendo resto r e quociente q
1
.
Faca q q
1
.
O proximo dgito(da direita para a esquerda) na sada e r.
Exerccio 1 Usar o algoritmo para mostrar que 380
10
= 101111100
2
.
Mudanca para decimal
Problema 2 Como a representacao de um inteiro em outra base pode ser alterada para
decimal?
Este problema e exatamente o inverso do anterior. O procedimento mais obvio seria
multiplicar a expansao literal do inteiro. No entanto, o metodo abaixo e mais eciente,
requerendo menos operacoes.
Exemplo 7 Converter 23DA(base 16) em decimal.
Da denicao:
23DA(base 16) = 2 16
3
+ 3 16
2
+ 13 16 + 10
(6 multiplicacoes e 3 adicoes)
= 16 (2 16
2
+ 3 16 + 13) + 10
= 16 (16 (2 16 + 3) + 13) + 10
= 16 (16 (16 2 + 3) + 13) + 10
(O calculo da ultima expressao requer 3 multiplicacoes e 3 adicoes)
Os calculos procedem dos parenteses internos para obter 9178 em decimal.
2.2. OS INTEIROS EM DIFERENTES BASES 23
O algoritmo usado no exemplo acima e conhecido por metodo de Horner.
Algoritmo 2 (Horner)
Para mudar a representacao de um inteiro de outra base para a decimal.
Entrada: x, a base na qual o n umero n esta representado.
a
k
, a
k1
,..., a
0
. (os dgitos de n na base x)
Precondicoes: n 2 e a
k
,= 0 e 0 a
j
< x.
Sada: n, o n umero expresso na base 10.
Poscondicoes: A expansao literal de n na base x
Metodo: n a
k
(inicialize n com a
k
).
Para i = 1 ate k
n n x +a
ki
.
(isto e, n vezes a base mais o proximo dgito da direita)
Os exemplos a seguir ilustram a aplicac ao do algoritmo.
Exemplo 8 Converter 23DA
16
em decimal.
Representando n umeros em decimal dentro das etapas
do algoritmo, temos:
x a
3
a
2
a
1
a
0
n
16 2 3 13 10 2
2 16 + 3 = 35
35 16 + 13 = 573
573 16 + 10 = 9178
Portanto, 23DA
16
= 9178
10
Exemplo 9 Converter 7025
8
em decimal.
x a
3
a
2
a
1
a
0
n
8 7 0 2 5 7
7 8 + 0 = 56
56 8 + 2 = 450
450 8 + 5 = 3605
Portanto, 7025
8
= 3605
10
Operac oes aritmeticas sobre os inteiros positivos
Os algoritmos usuais que usamos para as operac oes aritmeticas sobre os inteiros positivos
dependem da base, no caso a base 10.

E possvel construir um algoritmo geral para cada
operac ao, sobre qualquer base. O algoritmo poderia ser estendido para manipular com
n umeros inteiros negativos, assim como para inteiros positivos, acrescentando-se regras
apropriadas. O algoritmo abaixo cobre a parte interessante, lidando com dgitos vai.
24 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


Problema 3 Como poderemos adicionar dois inteiros positivos na base x?
Vamos efetuar a adic ao em decimal, observando o papel desempenhado pela base, e
entao efetuar calculos paralelos numa base diferente.
Exemplo 10 Calcular 27 + 15 em decimal, binario e octal.
decimal binario octal
dgito vai 10 111110 10
27 11011 33
15 1111 17
42 101010 52
Em cada caso a resposta e quarenta e dois.
O algoritmo abaixo generaliza o metodo para uma base arbitraria. Estamos usando o
smbolo para atribuir `a variavel da esquerda o valor da expressao na direita. Alguns
autores usam o smbolo :=, emprestado da linguagem de programacao Pascal, para
veicular o mesmo signicado.
Por exemplo, o trecho c
i
a
i
= b
i
+ d
i
x signica que o valor de c
i
e substitudo
pelo valor de a
i
+b
i
+c
i
x.
Algoritmo 3 (Adicao) Adiciona dois inteiros positivos representados na base x.
Entrada: a, b, inteiros, ambos representados na base x.
Precondi coes: a > 0 e b > 0.
Sada: c, inteiro, representado na base x.
Poscondicoes: c = a + b
Metodo: Represente a por a
k
...a
0
, uma cadeia de comprimento
k+1, na base x.
Represente b por b
k
...b
0
, uma cadeia de comprimento
k+1, na base x.
(se necessario, preencha com zeros na frente de modo
que as cadeias sejam iguais.)
d
0
0 (d
i
e para ser usado como o dgito vai
da coluna i-1)
Para i=0 ate k
se a
i
+b
i
+d
i
x entao
d
i+1
1
c
i
a
i
+c
i
+d
i
x
senao
d
i+1
0
c
i
a
i
+b
i
+d
i
se d
k+1
= 1 entao c
i+1
1
2.2. OS INTEIROS EM DIFERENTES BASES 25
Problema 4 (Subtracao) Como poderemos subtrair um inteiro de outro, ambos represen-
tados na base x?
A subtracao decimal abaixo nos relembra o papel da base(10) na subtracao usual. As
subtracoes binaria e octal fazem calculos paralelos em diferentes bases.
Exemplo 11 Calcule 50 - 22.
decimal binario octal
50 110010 62
22 10110 26
28 11100 34
em cada caso a resposta e vinte e oito.
Algoritmo 4 (Subtracao) Para subtrair um inteiro positivo de outro, ambos representa-
dos na base x.
Entrada: a, b, inteiros, ambos representados na base x.
Represente a por a
k
...a
0
, uma cadeia de comprimento k+1
Represente b por b
k
...b
0
, uma cadeia de comprimento k+1
(se necessario preencha com zeros na frente,
de modo que as cadeias sejam iguais).
Precondicoes: a > b > 0.
Sada: Um inteiro, representado na base x.
Poscondic oes: c = a - b.
Metodo: d
0
0 ( d
i
e para ser o dgito vai
da coluna i - 1).
para i = 0 ate k
se a
i
b
i
d
i
0 ent ao
d
i+1
0
c
i
a
i
b
i
d
i
senao
d
i+1
1
c
i
a
i
+x b
i
d
i
Multiplicacao
Um algoritmos para a multiplica cao de inteiros positivos, representados numa base arbi-
traria x, poderia usar adic ao repetida. O algoritmo usual para a multiplica cao se funda-
menta no conhecimento de uma tabela de multiplicac ao para a base na qual os inteiros
estao representados e usa o fato de que, para cada base x, multiplicac ao por x
n
desloca
a representacao dos inteiros n casas para a esquerda ao se colocar n zeros `a direita. A
tabela de multiplicacao para os binarios consiste dos seguintes quatro fatos:
26 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


0 0 = 0 0 1 = 0
1 0 = 0 1 1 = 1
Os exemplos seguintes ilustram o algoritmo usual para a multiplicac ao de inteiros
representados na base 10 e as versoes paralelas para as bases 2 e 8.
Exemplo 12
decimal binario octal
27 11011 33
13 1101 15
81 11011 207
270 1101100 330
351 11011000 537
101011111
Divisao
Um algoritmo para a divisao de inteiros positivos, representados numa base arbitraria x,
poderia usar subtrac ao repetitiva. O exemplo seguinte ilustra o algoritmo usual para a
divisao de inteiros na base 10 e a vers ao paralela para a base 2.
Exemplo 13 Calcular 729 17.
decimal
42 quociente
680 subtraia 40 17 de 729
49 resto ate aqui
34 subtraia 2 17 de 49
15 resto
O quociente e 42 e o resto e 15.
Exemplo 14 Calcular 110110
2
1001
2
em binario.
binario
110 quociente
1001 [ 110110
100100 subtraia 100 100
10010 resto ate aqui
10010 subtraia 10 1001
0 resto
O quociente e 110
2
e o resto e 0.
2.3. REPRESENTAC

AO DOS INTEIROS NUM COMPUTADOR 27
2.3 Representacao dos inteiros num computador
As propriedades dos inteiros vistas como um sistema matematico sao corporicadas em
axiomas. Seria interessante que essas propriedades fossem preservadas na representacao
no computador. Para aritmetica mais pratica nao existe nenhuma diculdade, porem
para n umeros muito grandes os primeiros axiomas falham e pode existir problemas
com alguns dos outros.
Axioma 1 dos inteiros.
Para cada par de inteiros a, b, a + b e ab sao inteiros unicos. Dizemos que
a adic ao e a multipliccao sao denidas sobre os inteiros ou, `as vezes, que os
inteiros sao fechados sob a adicao e a multiplicacao.
Qualquer que seja o espaco reservado para cada inteiro, existirao inteiros bastante
grande para ser possvel uma representac ao acurada dele no computador. Por exemplo,
o produto
123123123 987987987
nao pode ser efetuado nas calculadoras comuns. Uma calculadora retorna a resposta
aproximada 1.216441710
17
. Para inteiros positivos maiores que 10
100
muitas clculadoras
retornam uma mensagem de erro. Portanto, em ultima instancia, o axioma 1 falha.
Inteiros positivos
Para o armazenamento de informac ao, e necessario um dispositivo que possa existir em
diferentes estados e possa mudar de um estado para outro.

E preciso que seja possvel
identicar o estado do dispositivo sem erro. O tipo de dispositivo que e mais conavel
para o armazenamento acurado e a identicac ao e um que tenha exatamente dois estados.
Portanto, no nvel basico, informacao deve ser arranjada num forma bivalorada.
Para os inteiros o arranjo apropriado e o sistema binario, que usa somente os dgitos
0 e 1. O dispositivo elementar que pode existir em dois estados e chamado um bit.
Para o nosso proposito os estados sao rotulados 0 e 1. A palavra bit e uma contracao de
binary digit.
Como o tamanho potencialmente ilimitado dos n umeros deve ser registrado numa
maquina com capacidade limitada?
A pratica e decidir sobre o n umero de bits usado para representar um inteiro. A
sequencia de bits e chamada uma palavra de comprimento xo ou simplesmente pa-
lavra. As mais usadas sao as palavras de 8-bits, 16-bits e 32 bits. Vamos ilustrar o
conceito usando palavras de 4-bits:
28 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


0 e representado por 0000
1 0001
2 0010
3 0011
4 0100
.
.
.
.
.
.
7 0111
Observe que as cadeias de 4-bits, acima, correspondem aos n umeros binarios de 1 a
7. Como cada bit tem dois valores possveis existirao 2
4
ou 16 palavras possveis ao todo,
deixando oito palavras para serem alocadas para os inteiros negativos. A alocac ao tem
sido feita de varias maneiras, talvez a mais obvia seja o metodo do sinal, magnitude
que usa um bit para o sinal e o resto para a magnitude do n umero. No entanto, o que
segue talvez seja o metodo mais utilizado. Ele e chamado o metodo do complemento de
dois. A vantagem deste metodo e que podemos somar (ou subtrair) sem ter que checar
o primeiro sinal. Um erro de estouro pode ocorrer, mas isto e facil(eletronicamente) de
dectectar.
Inteiros negativos
Continuando, como ilustrac ao, com as palavras de 4-bits, temos:
-1 e representado por 1111
-2 1110
-3 1101
-4 1100
.
.
.
.
.
.
-7 1001
-8 1000
Observe que cada palavra representando um n umero inteiro negativo tem um 1 na
primeira posic ao. Mas como e escolhida a palavra toda?
A palavra de 4-bits 1111, e vista como um inteiro binario(comprimento vari avel) 10000
- 1.
Portanto, quando temos -1 representado por 1111, na tabela acima, isto corresponde
a 10000 - 1 em binario, que e 16 - 1 em decimal. Analogamente, -2 e representado por
1110, que corresponde a 1000 - 10 em binario, ou 16 - 2 em decimal. A explicac ao e que
as palavras de 4-bits corespondem aos n umeros em Z
16
no qual 16 0.
Vamos fazer o calculo binario que produz 1110 para -2.
2.3. REPRESENTAC

AO DOS INTEIROS NUM COMPUTADOR 29
10000 pode ser escrito como 1111 +1
10 10
1110 que produz 1101 +1
ou 1110
O calculo na esquerda usa mais que quatro bits. A vantagem desse calculo na direita
e que ele pode ser efetuado corretamente, usando nao mais que quatro bits.
Observe que 1101 tem dgitos que sao o complemento dos dgitos em 0010, a palavra
binaria para 2. Isto leva ao seguinte procedimento para achar a representac ao da palavra
de comprimento xo para -2. Este procedimento pode ser facilmente implementado em
hardware.
1. Escreva a palavra para 2, resultando 1101.
2. Substitua cada zero por 1 e cada 1 por 0, resultando 1101.
3. Adicione 1 a 1101 em binario, dando 1110. (Para que esta ultima etapa se aplique
a todos os casos, ignore qualquer dgito vai para coluna 5.)
A razao para a assertiva entre parenteses na etapa 3 e lidar corretamente com o nega-
tivo de 0. Aplique o procedimento acima para a representa cao da palavra de comprimento
xo para - 0.
1. A palavra para 0 e 0000.
2. A transformac ao gera 1111.
3. Adicionar 1 a 1111 resulta 0000(o resultado matematico correto) desde que iguino-
remos o ultimo dgito vai.
O procedimento pode ser usado para achar a representacao para o negativo de qualquer
n umero, desde que nao necessitemos sair das palavras disponveis.
Por exemplo, o negativo de -8 nao esta disponvel nas palavras de 4-bits.
Representar inteiros com palavras xas de 4-bits e deveras limitado. Um computador
usando palavras de 16-bits, tal como um IBM PC, tem 2
16
, isto e, 655536 palavras dis-
ponveis. Usando o esquema do complemento de dois, e possvel representar os inteiros
de -32768 a 32767. Muitos computadores usam palavras de 32-bits, que permitem as
representacoes de -2147483648 a 2147483647.
Estamos conscientes de que o axioma 1, para os inteiros, nao se verica na sua repre-
sentacao no computador. No entanto e possvel fazer muita aritmetica, dentro do intervalo
usado na pratica. Todos os axiomas dos inteiros se vericam, contanto que os calculos
permanecam dentro do intervalo permitido. Se um calculo resultar numa resposta que nao
possa ser representada dentro das palavras de comprimentos xos permitidos, podemos
30 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


dizer que ocorreu um estouro. Se ocorrer um estouro num computador e gerado um
sinal para avisar este fato.
Agora considere palavras de comprimento xo de tamanho arbitrario.
Problema 5 Como poderemos representar inteiros positivos, usando palavras de n-bits
de comprimento xo?
Algoritmo 5 Para representar inteiros positivos, i, usando palavras de n-bits.
Entrada: Um inteiro n.
(o n umero xo de bits numa palavra de inteiros)
i, inteiro.
Precondicoes: 0 i 2
n1
1
(i e o inteiro a ser representado)
Sada: Uma palavra de n-bits, representando um inteiro i.
Metodo: Representa i em binario(se necessario).
a
k
a
k1
...a
0
, onde k n 2
Preencher com zeros na frente para formar
uma palavra de n-bits.
Exemplo 15 Represente 53 em palavras de 8 bits.
53
10
= 110101
2
Portanto, 53 e representado por 00110101.
Problema 6 Como poderemos representar os inteiros negativos, usando palavras de com-
primento xo de n-bits?
Algoritmo 6 Para representar o inteiro negativo, usando palavras de n-bits. (A repre-
sentacao de complemento de dois de inteiros com sinal.)
2.3. REPRESENTAC

AO DOS INTEIROS NUM COMPUTADOR 31
Entrada: n e i inteiros.
Precondic oes: 2
n1
i 2
n1
1.
(i e o inteiro a ser representado)
Sada: Um palavra de n-bits, representando -i.
Poscondic oes: obvia.
Metodo: Caso 1. i 0.
1. Se necessario, use o algoritmo anterior para escrever
a palavra de n-bits para i.
2.Substitua dgitos. Substitua 0 por 1 e 1 por 0.
3. Adicione 1 a palavra de n bits assim obtida,
usando adic ao binaria exceto que um dgito vai
da coluna deve ser ignorado.
4. A palvra assim produzida representa -1.
Caso 2. i < 0.
Se for dada a representac ao para i, aplique
as etapas 2, 3, 4 do caso 1.
Caso contr ario, i > 0 e -i pode ser representado
diretamente usando o algoritmo anterior.
Exemplo 16 Representar o negativo de 53, usando palavras de 8-bits.
53
10
e representado por 00110101
11001010 (substituindo dgitos)
+ 1 (adciona 1)
11001011
(53) e representado por 11001011
Exemplo 17 Representar -(-53) usando palavras de 8-bits.
(53
10
) representado por 11001011 do exemplo anterior.
00110101 (substituindo dgitos)
+ 1 (adicionando 1)
00110101
(53) e representado por 00110101
Exemplo 18 Achar o inteiro cuja palavra de 8-bits e 11100001. O inteiro procurado
deve ser negativo, pois o dgito mais `a esquerda e 1. Usaremos o algoritmo da negacao
para descobrir seu valor. Seja i o inteiro cuja representacao e 11100001. Entao:
32 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


i e representado por 11100001
aplique o algoritmo anterior 6
substitua dgitos: 00011110
adicione 1: 00011111
-i e representado por 00011111
portanto -i igual 31
e -(-i) igual -31
Portanto
i = -31
O metodo pelo qual sao acrescentados palavras de n-bits de comprimento xo e para
trata-las como inteiros, exceto que os dgitos vai da coluna mais `a esquerda sao ignorados.
2.4 N umeros reais
A operacao de divisao nao esta denida sobre os inteiros. Isto e, a b nao e um inteiro
para todos os pares de inteiros a e b.
Entretanto, os inteiros podem ser estendidos para formar um novo sistema de n umeros,
chamado os racionais, no qual a divisao possa ser denida.
Mesmo os racionais nao sao sucientes para fazer tudo que os matematicos gostariam.
Para resolver equac oes tais como x
2
2 = 0 e representar todo ponto sobre a reta por um
n umero, e necessario inventar uma outra classe de n umeros chamados irracionais.
Os n umeros racionais juntos com os irracionais formam os n umeros reais.
N umeros racionais
Os n umeros racionais sao basicamente pares de inteiros numa determinada ordem. Por
exemplo,
2
3
(`as vezes escrito 2/3) e 3/2 sao diferentes.
O conjunto dos inteiros e denotado por Z. O conjunto dos racionais consiste de todos
os pares ordenados de inteiros p/q nos quais q ,= 0.

E comum denota-lo por Q. As quatro
operac oes, adicao, multiplicac ao, subtracao e divisao, sao denidas sobre Q.
Para todos racionais
p
q
,
r
s
, onde p, q, r, s sao inteiros com q, s ,= 0, denimos:
adicao
p
q
+
r
s
=
ps +qr
qs
subtracao
p
q

r
s
=
ps qr
qs
2.4. N

UMEROS REAIS 33
Observe que esta denic ao e equivalente `aquela dada anteriormente para a subtracao,
se denirmos o negativo do racional
r
s
por
r
s
.
multiplicacao
p
q

r
s
=
pr
qs
divisao, desde que r ,= 0
p
q

r
s
=
ps
qr
Observe que esta denicao pode ser reescrita em termos da denicao de mul-
tiplicac ao, se denirmos a inversa de um racional (
r
s
) como sendo
s
r
. Ent ao,
para dividir por um racional, multiplique-o pelo seu inverso.
Mas o conjunto dos racionais introduz um novo problema. Um n umero racional pode
ser representado por innitos pares de inteiros diferentes. Por isso precisamos de um
mecanismo para decidir se pares de inteiros distintos representam o mesmo racional ou
nao.
Por exemplo, 1808/1017 e 16/9 sao o mesmo n umero. Uma abordagem para
resolver esse problema e denir igualdade de n umeros racionais.
Denicao 3 (igualdade)
p
q
=
r
s
se e somente se ps = qr.
Outra maneira de resolver esse problema e expressar um racional
p
q
numa forma padrao.
Isto pode ser feito expressando o racional no mais baixo termo, por exemplo,
1808
1017
=
11316
1139
=
16
9
onde 113 e o maximo divisor comum de 1808 e 1017. Ou pode ser feito estendendo a
expansao literal de um n umero a racionais, pelo processo usual da divisao, estendido
alem do ponto decimal. Por exemplo,
1808
1017
= 1,7777...
= 1, 7
16
9
= 1, 7
A ultima alternativa introduz uma outra diculdade. Algumas calculadoras devolvem
1.7777778 para
16
9
. Podemos achar que isso e uma aproximac ao razoavel. No entanto, para
conviver com o tamanho nito do espaco de armazenamento de algumas outras maquinas,
e necessario aproximar esse n umero para uma resposta correta. O estudo dos calculos que
sao sensveis a erros pequenos e parte da analise numerica, assunto muito especializado
para o objetivo deste curso.
Existem dois problemas a considerar:
34 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


1. Como podera ser representado sobre uma maquna um n umero cuja expansao literal
e tal que sua representa cao estouraria o espaco reservado para n umeros?
2. Como dever a terminar um algoritmo que forneca a representacao decimal de um
n umero racional.
A primeira questao pode ser investigada efetuando o seguinte calculo numa calcula-
dora:
77777777 + 0, 12345678 77777777
Algumas calculadoras devolvem 0,12. Outras produzem respostas diferentes. A res-
posta indica a capacidade que a calculadora possui de arredondar o n umero para o valor
mais proximo que esteja correto. Para muitas calculadoras, casas de 00-49 e arredondado
para 0 e de 50-99 para 1.
A segunda questao pode ser investigada considerando alguns exemplos.
Exemplo 19 Achar a expansao literal do racional 8/11 em decimal.
0, 72
11 ) 8.00
7, 70
30
22
8
Neste ponto o algoritmo requer a operacao 8 dividido por 11, o mesmo que a primeira
operac ao. O algoritmo repete a mesma sequencia de divisoes desde quando comecou o
processo. O algoritmo entra num laco sem m repetindo os dgitos 7, 2. Temos:
8/11 = 0, 7272... = 0, 72
Exemplo 20 Achar a expansao literal do racional 3/4 em decimal.
Para este exemplo o mesmo procedimento de divisao termina. Temos:
3/4 = 0, 75
Exemplo 21 Achar a expansao literal do racional 13/61 em decimal.
2.4. N

UMEROS REAIS 35
Usando o algoritmo da divisao como no exemplo acima obteremos: 13/61 = 0, 213114754098360655737704918032786885245901639344262295081967,
apos o que os dgitos se repetem.
Para divisoes por 61 existem, alem de zero, 60 restos possveis. Portanto o tamanho
do maior ciclo e 60, que no caso do nosso exemplo foi atingido.
A espansao literal de p/q, onde p e q sao inteiros, ou termina ou entra em ciclo de
comprimento no maximo q - 1. A regra mais simples e parar quando foi atingido algum
n umero especco de dgitos.
O algoritmo usado em nossa calculadora parece parar apos serem calculados 9 dgitos,
sendo que os dois ultimos dgitos sao usados para arredondar para 7 dgitos. Assim a
nossa calculadora gera
0, 7272727, 0, 75, 0, 2131148
nos exemplos dados acima.
N umeros racionais expressos em binario
As cadeias de dgitos
a
k
...a
1
a
0
.a
1
...a
s
(base x)
representa a espansao literal
a
k
x
k
+... +a
1
x +a
0
+a
1
x
1
+.... +a
s
x
s
Exemplo 22 Converter 11, 011
2
para decimal.
11, 011
2
= 2+1+
1
4
+
1
8
=
27
8
= 3, 375 (decimal) por divisao usual (ou por calculadora).
Exemplo 23 Converter 1101, 101101
2
= 877
10
. Portanto:
1101,101101 = 1101101101/1000000 (binario)
= 877/64 (decimal)
= 13,703125 (decimal)
Os exemplos acima apresentam duas abordagens para a convers ao em decimal de um
racional expresso em binario.
Problema 7 Como poderemos converter para binario uma fracao expressa em decimal?
36 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


A abordagem apresentada abaixo e subtrair, em cada estagio, a maior frac ao binaria
possvel, ate nao restar nada.
Por exemplo, 0, 75
1
2

1
4
= 0. Portanto, 0, 75
10
= 0, 11
2
.
Algoritmo 7 Para convertr em binario uma fracao decimal.
Entrada: Um n umero racional a, entre 0 e 1, expresso em decimal.
Sada: a expresso em binario exato ate oito dgito(digamos).
Os dgitos sao registrados a partir do ponto para
a direita, na ordem em que forem encontrados.
Metodo: Seja a um n umero racional a ser convertido em binario.
Inicialze i com 1. (i conta o n umero de lugares
com incio no ponto).
enquanto a > 0 e i 8 :
se 2
i
a
entao
a e dado pelo valor a 2
i
registre 1
senao
registre 0
incremente i de 1.
Exemplo 24 Converter 0, 375
10
para a base 2.
i a 2
i
(2
i
a) sada
1 0,375 0,5 f ,0
2 0,375 0,25 t ,01
3 0,125 0,125 t ,011
4 0
Erros
Seja y = x + e uma aproximac ao para x. Dizemos que [e[ e o valor absoluto do erro ao
tomar y como uma aproximacao para x. Dena como o maior valor possvel de [e[.
Exemplo 25 Uma calculadora retorna o valor 0,714285 para algum calculo nao especi-
cado. Qual e o maior erro possvel:
(a) Se a calculadora arredonda ?
(b) Se a calculadora trunca?
2.4. N

UMEROS REAIS 37
(a) Seis dgitos sao visveis apos o ponto decimal. Na hipotese de que a calculadora tem
outros dgitos nao apresentados e o n umero apresentado foi obtido por arredonda-
mento, o ultimo dgito apresentado deve ser o sexto dgito calculado mais proximo
da resposta exata. Na pratica, isto signica que se o dgito omitido representa a
metade ou mais do valor do ultimo dgito visvel, entao esse dgito foi aumentado de
1. Os n umeros no intervalo 0.71428450,7142854999... arredonda para a resposta
dada. O maior valor absoluto possvel e = 0, 000005.
(b) Truncamento e a ac ao de tirar fora ou ignorar os dgitos nao apresentados. Os
n umeros no intervalo de 0,7142850,714285999.. trucam para a resposta dada. O
maior erro absoluto possvel e = 0, 000001.
erro absoluto
[e[ = [y x[
erro relativo
[e[
[x[
=
[y x[
[x[
percentagem do erro relativo
100[e[
[x[
=
100[y x[
[x[
Na pratica dividimos por [y[, pois x e desconhecido, e trocamos e por .
N umeros irracionais
Todo n umero racional (
p
q
) tem uma espansao decimal que ou para, ou permanece em ciclo
sem m, com a mesma sequencia de dgitos. Mas existem n umeros com espansoes decimais
que nem termina nem permanece em ciclo. Tais n umeros nao podem ser expressos como
a razao de dois inteiros e por isso sao chamados irracionais.
Exemplos de n umeros irracionais sao 1,10110010001...,

2, , log
10
7, ln3, sen

10
. Exis-
te uma quantidade innita de n umeros irracionais.
Para armazenar os n umeros irracionais numa maquina, eles sao aproximados por ra-
cionais de comprimento xo, da mesma maneira como os racionais que cam em ciclo ou
sao muito longos.
Um algoritmo iterativo para calcular

k
Problema 8 Como poderemos achar a raz quadrada de um n umero real positivo?
38 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


A seguir e apresentado um algoritmo eciente para uma calculadora ou computador
para achar a raz quadrada de um n umero real positivo.
Algoritmo 8 Para calcular, com alguma acuracidade, a raz quadrada de um n umero
real positivo.
Entrada: O real positivo k.
(pretendemos achar a raz quadrada de k)
> 0, real.
( e a medida da proximidade que sera aceita.)
Sada: O real y.
(y e a aproximac ao nal para

k )
Metodo: Dar um valor a x. Qualquer n umero real positivo.
i 0 (inicaliza i).
Repita
_
_
_
x (x +
k
x
)/2
(x e a aproximac ao corrente de

k)
i i + 1
ate x esta proximo a

k.
y x
O que signica proximo?
x esta proximo a

k pode ser renado para


([x
2
k[ ) e verdadeiro (1)
ou ([x o valor anterior de x[ ) e verdadeiro (2)
As assertivas (1) e (2) sao booleanas. A primeira assertiva e verdadeira se a raz
quadrada de x estiver proximo a k. A segunda armativa e verdadeira se os sucessivos
valores de x estao cada vez mais proximos um do outro.
Omitindo a vari avel i nao teramos nenhum efeito sobre a operacao do algoritmo. Ele
atua meramente como um contador para dar o n umero da aproxima cao corrente de x a

k.
Exemplo 26 Calcule

25
Dar a x o valor inicial 25/2. Estabelecer 0,02 para . Usar o criterio (2) de proxi-
midade.
x i [x
i
x
i1
[ ([x
i
x
i1
[ 0, 02)
12,5 0
7,25 1 5,25 f
5,349 2 1,9 f
5,011 3 0,338 f
5,000013 4 0,011 t
2.5. EXERC

ICIOS 39
Exemplo 27 Calcular

10. Qual e a percentagem do erro relativo ao tomar

10 como
uma aproxima cao para ?
Dar a x o valor inicial 5. Estabeleca 0,0001 para . Use o criterio de proximidade
(1).
x i x
2
([x
2
10[ 0, 0001
5 0
3,5 1 12,25 f
3,17857 2 10,1033 f
3,162319 3 10,00026 f
3,162277 4 10,00000 t
O valor exato para quatro casas decimais e

10 = 3, 1623. Mas, = 3, 1415926...


Portanto a percentagem de erro e
[3, 1623 [ 100/ = 0, 7%
Este algoritmo esta correto? Pode-se mostrar, usando desigualdade que

k esta entre
x e k/x. Alem disso, tirando a media desses dois valores obtem-se uma melhor aproxi-
macao para a raz quadrada de x.
Uma prova melhor( isto e, mais simples e mais geral) de que esse algoritmo esta correto
usa o metodo de Newton, o qual, no momento, esta fora do nosso escopo.
2.5 Exerccios
1. Dar a espansao literal de:
(a) 1209
10
(b) 110101
10
(c) C10AA
16
2. Converter os seguintes n umeros para binario e em seguida para hexadecimal:
(a) 234
10
(b) 1024
10
(c) 255
10
(d) 747
8
(e) 326
8
Explicar, na linguagem comum, como fazer (d) e (e) sem converter para decimal.
3. Converter para decimal:
(a) ABCD(hexa) (b) 12073(octal) (c) 1011101(binario)
4. Calcular os seguintes em binario:
(a)10110 + 1001 (b) 101010 11011 (c) 110 110 (d) 1110100/101
5. Calcular o seguinte em hexadecimal:
(a) 347A + 8741 (b) 23B6 428
40 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


6. Percorra o algoritmo 3 fazendo x = 8, a = 2304, b = 514. Dar a sada do algoritmo.
7. De a representacao complemento de dois de 63 e -17 em palavras de 8-bits.
8. Achar os inteiros representados na forma complementos de dois pelas palavras de
8-bits 00111001, 10011010.
9. Projete um algoritmo para:
(a) resolver ax = b, para x em termos dos n umeros reais a e b.
(a) resolver ax
2
+bx +c = 0 para x em termos de a, b, c, reais.
10. Uma tabua encontrada na Babilonia, cerca de 1700 antes de Cristo, fornece o valor
1;54,51,10 para a raz quadrada de dois. Dado que os antigos babilonios usavam o
sistema sexagesimal de numerac ao, isto e, um sistema baseado em 60, calcular seu
valor para

2 e determinar sua acuracidade.


11. Qual de, se for o caso
215491
216169
ou
215492
216170
e igual a
1907
1913
?
12. Converta x = 14,14 de decimal para binario.
Arredonde a resposta para um n umero binario y, com 10 dgitos binarios. Ache
o erro relativo de y, como uma aproximac ao para x, convertendo y de volta para
decimal.
13. O n umero racional
22
7
e com frequencia usado como uma aproximacao para . Dado
que = 3, 141592654..., ache o erro relativo na aproxima cao dada.
14. Calcule a raz quadrada de 5 usando o algoritmo 8.
Qual o erro absoluto se forem efetuadas duas iterac oes , comecando com x = 2 como
primeira aproximacao para

5?
15. Arquimedes(287-212 AC) estabelece
1351
780
>

3 >
265
153
. Qual dessas aproxima coes e
mais proxima de

3?
Qual e o erro absoluto ao se tomar
1351
780
como uma aproximacao para

3?
16. Converta:
(a) 2324,05(base 10) para a base 16.
(b) 100010,1111(base 2) para a base 10.
(c) 1AA,2(base 16) para abase 2.
2.5. EXERC

ICIOS 41
17. Considere o seguinte algoritmo:
Entrada: x, racional entre 0 e 1, expresso em decimal.
Sada: x expresso em binario corrigido a oito dgitos.
Registre os dgitos na medida em que forem sendo encontrados,
a partir da vgula para a direita.
Metodo: a x
i 1
enquanto a > 0 e i 8 :
_

_
a a 2
se a 1
entao
a a 1
registre 1
senao
registre 0
i i + 1
(a) dado a entrada x = 0, 6
10
, achar a sada.
(b) Explique em palavras o que o algoritmo faz. Como identicar ciclos na sada?
18. O algoritmo dado abaixo acha as potencias inteiras positivas de um n umero real.
Entrada: x real e n um inteiro positivo.
Sada: p real. (p deve ter o valor x
n
)
Metodo: Suponha que p tem valor 1.
enquanto n ,= 0 :
divida n por 2 para obter o quociente q e resto r.
se r = 1 ent ao
substitua o valor de p por p*x.
suponha que n tem o valor q
suponha que tem o valor x*x
Percorra o algoritmo para a entrada x = 3 e n = 13.
19. O seguinte e um algoritmo iterativo para calcular

2.
42 CAP

ITULO 2. ALGORITMOS DE MUNDANC A DE BASE


Entrada: x real. (x pode ser um palpite para o valor de

2)
real
Precondic oes: x > 0, > 0
Sada: y real. ( y e o valor aproximado desejado para

2)
Metodo: a x
enquanto [a
2
2[ > :
_
a
1
a+1
a a + 1
y a
(a) Dado = 0, 01 e x = 2, percorra o algoritmo.
(b) Qual e o erro absoluto na aproximac ao para

2 encontrado pelo algoritmo?


(c) Qual e o proposito do no algoritmo?
Captulo 3
Conjuntos, Funcoes e Relacoes
3.1 Introducao
Nesta parte apresentaremos conjuntos, funcoes, relacoes e sequencias, conceitos basicos
que ocorrem em muitos ramos da matematica. Todos nos estamos familiarizados com
quase tudo que segue neste captulo, mas precisamos estabelecer os signicados desses
conceitos fundamentais. Um dos objetivos dessa parte e desenvolver uma uencia no uso
acurado dos termos matematicos e a traduc ao entre a matematica e a linguagem comum.
Um dos nossos objetivo e desenvolver uma linguagem precisa, baseada em matematica,
para a especicacao de algoritmos. Esperamos que isto ajudara na construcao de pro-
gramas corretos que possam ser ecientemente mantidos, ou adaptados a satisfazerem
novos requisitos. A linguagem matematica introduzida nesta parte e essencial para o en-
tendimento das ideias matematicas que seguem e para o preciso estabelecimento do que
desejamos sobre programas.
3.2 Conjuntos
Colocando as coisas que nos interessam em classes ou colecoes diferentes nos ajuda a
organizar nosso conhecimento. Apos essa classicac ao, as relacoes entre esses objetos de
interesse emergem, aumentando nosso entendimento. Numa situac ao pratica deve estar
claro quais os objetos de nosso interesse. A totalidade desses objetos que nos interessam
e chamado conjunto universal, que denotaremos por U. Um conjunto, S, consiste de uma
colecao bem denida de objetos do conjunto universal. Bem denida signica que para
cada objeto no conjunto universal, ele denitivamente pertence a S ou ele nao pertence a
S. A relacao fundamental entre conjuntos e seus elementos e a relacao de pertinencia.
Se um elemento x pertence a um conjunto S, escreveremos x S.
Se por outro lado, x nao pertencer ao conjunto S escrevemos x / S.

E comum usar letras min usculas, x, y, a, b, ... para elementos e mai usculas A, B, S,
43
44 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
...para conjuntos. Alguns conjuntos frequentemente usados tem notacoes especiais, como
por exemplo:
N e o conjunto dos n umeros naturais, 0,1,2,3..., (alguns excluem o elemento 0).
Z e o cunjunto dos n umeros inteiros, ...,-2,-1,0,1,2,3,....
Q e o conjunto dos racionais.
R e o conjunto dos n umeros reais.
B e o conjunto dos valores booleanos. B = t, f.
Char e o conjunto de todos os caracteres disponveis.

e um alfabeto de smbolos.
Um conjunto sem nenhum elemento e chamado conjunto vazio, denotado por ou .
Exemplo 28 Seja Char o conjunto universal, constitudo de todos os carac-
teres. Achar S, o conjunto dos caracteres na palavra saudade.
Solucao: S = s,a,u,d,e.
Observe que os elementos podem estar em qualquer ordem e nao podem ser repetidos.
A correspondente estrutura que permite a repetic ao de elementos e chamado multicon-
junto. Por exemplo, o multiconjunto dos fatores primos de 12 e 2,2,3.
Um conjunto pode ser descrito:
listando seus elementos: 3,5,2,6,7,1,0,4.
por descric ao: A e o conjunto dos dgitos na base 8.
usando um predicado:
A = x inteiros [ x e nao negativo e e menor que 8.
O smbolo [

e lido tal que. A notacao : tambem e usada para tal que.


A expressao x e nao negativo e e menor que 8 e verdadeiro para alguns inteiros x
e falsa para o resto. A expressao e chamada um predicado.
Um predicado deve ser denitivamente verdadeiro ou falso para cada valor da va-
riavel (x) no universo de discurso.
Em smbolos:
A = x Z[0 x 7,
aqui o predicado e 0 x 7.
3.2. CONJUNTOS 45
usando a func ao caracterstica para A:
(j) =
_
1 se j pertence a A
0 se j nao pertence a A
A funcao esta denida para todo j no conjunto universal.
Como o conjunto universal, U, contem todos os elementos de interesse para um dado
problema, os conjuntos de interesse serao tambem subconjuntos de U.
Denicao 4 (Subconjunto) Um conjunto A e um subconjunto do conjunto B se e so-
mente se todo elemento de a e tambem elemento de B. Escreveremos A B. O conjunto
A diz-se um subconjunto proprio de B se A for um subconjunto de B e no mnimo um
elemento de B nao pertence a A. Escreveremos A B.
Denicao 5 (Conjunto potencia) A colecao de todos os subconjuntos de U e, por sua
vez, tambem, um conjunto, chamado conjunto potencia de U, escrito
T(U) = X[X U
Exemplo 29 Achar o conjunto potencia de a,b,c.
Cada subconjunto de a,b,c pode ser construdo usando uma funcao carac-
terstica. As oito funcoes caractersticas podem ser geradas dos n umeros 0,...,7
expressos como cadeias de tres-dgitos. Por exemplo, 3 gera a cadeia binaria
011 e o subconjunto b,c. A tabela abaixo mostra a geracao de todos os
subconjuntos.
n umero binario caracterstica subconjunto
a b c
1 0 0 1 c
10 0 1 0 b
11 0 1 1 b,c
100 1 0 0 a
101 1 0 1 a,c
110 1 1 0 a,b
111 1 1 1 a,b,c
0 0 0 0
Portanto Ta, b, c) = c, b, b, c, ...
O conjunto potencia de a
1
, a
2
, ..., a
n
tem 2
n
elementos.
46 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
Propriedades de conjuntos
Tendo denido subconjunto, podemos, agora, denir igualdade de conjuntos.
Denicao 6 (Igualdade) Dois conjuntos A e B sao iguais se e somente se cada elemento
em A pertence a B e cada elemento em B pertence a A.
Da denic ao de subconjunto, acima, segue que a denic ao de igualdade e equivalente a
A B e B A
N umero num conjunto
O n umero de elementos num conjunto S sera denotado por [S[ ou n(S). Um conjunto
contendo um unico elemento e chamado conjunto unitario.
Operac oes sobre conjuntos
Cada uma das operacoes a seguir produz um novo conjunto, a partir de dois conjuntos
dados, (A,B).
Intersecao
O conjunto de elementos que pertencem a ambos os conjuntos A e B.
A B = x[x A e x B
Uniao
O conjunto dos elementos que pertencem a no mnimo um dos dois conjuntos, o conjunto
dos elementos que pertencem a A ou B.
A B = x[x A ou x B ou em ambos
Diferenca
Os elementos do primeiro conjunto que nao estao no segundo conjunto .
A B = x[x A e x / B
3.2. CONJUNTOS 47
Complemento
A (conjunto) diferenca entre o conjunto universal e o conjunto dado. O complemento de
A e escrito A

.
A

= U A
Diferenca simetrica
A diferenca simetrica de A e B, denotado por AB, e o conjunto dos elementos que estao
em exatamente um de A e B.
AB = x[x A ou x B mas nao em ambos
Exemplo 30 Quantos inteiros de 1 a 1000 nao sao divisveis por 9 e 12?
Solucao: Tome o conjunto universal como sendo todos os inteiros de 1 a
1000, inclusive.
Seja A o conjunto dos inteiros divisveis por 9. Seja B o conjunto dos inteiros
divisveis por 12.
Entao, pretendemos achar n(U (A B)).
A = 9, 18, 27, ..., e n(A) = 1000/9| = 111
1
B = 12, 24, 36, ..., e n(B) = 1000/12| = 83
Observando o diagrama de Venn para conjuntos, constatamos que quando sub-
traimos 111 e 83 de 1000, ou em outras palavras, quando subtraimos os con-
juntos A e B de U, subtraimos duas vezes A B.
Mas,
A B = 36, 72, ... e n(A B) = 1000/36| = 27,
Portanto,
n(U A B) = n(U) n(A) n(B) +n(A B)
= 1000 111 83 + 27
= 833
1
Lembre-se que m/n| denota o quociente(inteiro) da divisao de m por n. No nosso caso quando
dividimos 1000 por 9 achamos quociente 111 e resto 1.
48 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
Produto cartesiano
O conjunto de todos os pares ordenados cujos primeiros elementos estao no primeiro
conjunto e os segundos elementos estao no segundo conjunto.
A B = (a, b)[a A e b B
Exemplo 31 3, 4, 2 2, 6 = (3, 2), (3, 6), (4, 2), (4, 6), (2, 2), (2, 6)
Observe que (3,2) esta presente, mas (2,3) nao esta.
Exemplo 32 Uma tela de caracteres de texto pode ser descrita por meio de conjuntos,
usando a ideia de produto cartesiano. Suponha que existe uma tela com 40 colunas e 20
linhas. A convencao usual em computacao e crescer as colunas da esquerda para a direita
e as linhas para baixo.
Seja C o conjunto dos n umeros de colunas: C = c N[1 c 40 .
Seja R o conjunto dos n umeros de linhas : R = r N[1 r 20 .
Entao o conjunto de todas as posicoes da tela e o produto cartesiano C R.
C R = (c, r) N N[1 c 40 e 1 r 20
Observe que este sistema para rotular pontos e analogo(mas nao o mesmo que) ao
sistema de coordenadas cartesianas usual.
Seja Char o conjunto de caracteres que podem ser visualizados, incluindo um branco.
Uma tela de texto, S, pode, agora, ser descrita formalmente como o conjunto das
triplas (c, r, x), onde x e o caractere visualizado na posicao (c, r).
S C R Char
Particao
A colec ao de subconjuntos A
1
, A
2
, ..., A
k
diz-se uma particao de A se e somente se cada
elemento em A esta em um dos subconjuntos A
i
, e nenhum elemento esta em mais que
um dos subconjuntos.
Formalmente, A
1
, A
2
, ..., A
k
e uma partic ao de A se e somente se
A
1
A
2
... A
k
= A
e
A
i
A
j
= , para todos os i, j, com i ,= j.
Os subconjuntos A
1
, A
2
, ... sao chamados as celulas da particao.
3.2. CONJUNTOS 49
Exemplo 33 Considere o conjunto dos naturais N = 0, 1, 2, ... e A
1
=
0, 2, 4, ..., o conjuntos dos naturais pares, e A
2
= 1, 3, 5, ..., o conjunto
dos naturais mpares. A
1
, A
2
constituem uma particao de N.
Exemplo 34 Cada dia do ano pertence a uma das sete classes: segunda feira, terca,
quarta, quinta, sexta, sabado e domingo. Por exemplo, o dia 200 em 1991 e uma sexta.
Cada dia pertence a um e somente um dos dias da semana. Os dias da semana sao uma
particao do ano.
Paradoxos e conjuntos universais
Embora a teoria dos conjuntos pareca ser muito simples, no seu incio(pre-axiom atica)
ela suscitou muitos paradoxos e debates.
Bertrand Russell(1873-1970) usou a descric ao de Cantor(1895) de um conjunto como
uma colecao de objetos denidos e separados de nossa intuicao ou pensamento e tentou
denir um conjunto S por
S = X[Xe um conjunto e X / X
Agora(apos sua denic ao) alguns conjuntos sao elementos de si proprios. Por exemplo,
um conjunto de pensamentos e um pensamento. Desse modo, a denicao de Russell
esta edequado com a descricao de Cantor. Russell, entao coloca a seguinte questao: S e
um elemento de si proprio?
Se a resposta for sim, ent ao por denic ao S / S, uma contradic ao.
Se a resposta for nao, entao por denicao S S, uma contradic ao.
A existencia de S e contraditoria, e isto constitui o paradoxo de Russell. A aborda-
gem axiomatica para a teoria dos conjuntos diz que o signicado real do paradoxo acima
esta em que nao existe conjunto universal absoluto. Se denirmos
S = X U[Xe um conjunto e X / X
onde U e um conjunto universal, o paradoxo desaparece. Como antes, a assertiva
S S acarreta S / S, uma contradic ao. Mas, a conclusao agora e S nao esta no
conjunto universal.
O efeito pratico da discussao acima e que os matematicos preferem denir um conjunto
universal construtivamente e usar predicados que se referem a si proprio com muita
precaucao. Entretanto, nao pretendemos rejeitar todas as denic oes que se referem a si
propria. Tais denicoes podem ser muito poderosas, como no caso das denicoes por
recursao.
50 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
Conjuntos difusos
Ja pode ter ocorrido a algum de nos descobrir que existem algumas colec oes de coisas que
sao de interesse, mas nao sao bem denidas. Por exemplo, considere as pessoas que
voce conhece e pratica rodeio. Isto signica regularmente, uma vez ao ano, uma vez por
semana ou o que? Que nvel de treinamento e exigido de uma pessoa para que ela alegue
ser capaz de rodeiar? A descric ao as pessoas que voce conhece que pratica rodeio nao
dene um conjunto.
Em 1965, Zadeh introduziu a ideia de conjuntos difusos, com o objetivo de lidar com
colecoes cujos membros sao mal-denidos. Ele deniu um grau ou nvel de membros
de um conjunto difuso(fuzzy set) sobre uma escala de 0 a 1. Esta abordagem pode
ser pensado como uma extensao da ideia da func ao caractersta como descricao de um
conjunto.
3.3 Func oes
Um programa de computador frequentemente se comporta como uma func ao. A entrada
de um programa pode ser pensado como o x numa funcao e a sada com o unico y as-
sociado com o x pela func ao. A propriedade da unicidade e importante. Normalmente,
seria inaceitavel ter diferentes sadas para a mesma entrada, nas execuc oes separadas de
programas.
Pode acontecer que para certas entradas um programa nao forneca uma sada. Por
exemplo, ele pode entrar em loop(laco) indenidamente ou parar prematuramente. Para
uma funcao a situac ao correspondente seria a possibilidade de que para algum valor de x
a func ao nao gere um valor y. Para permitir esta possibilidade, denimos uma funcao
parcial. Portanto, y =

x, x R seria uma funcao parcial. Se a funcao puder ser avaliada
para todo x ela sera chamada total. Uma funcao total tem todas as propriedades de uma
funcao parcial(e portanto e uma func ao parcial) com a propriedade adicional de que para
cada x existe um y. Por exemplo, y = x
2
, x R e uma funcao total. Quando, por
brevidade, daqui por diante, a palavra funcao for usada, ela signicara func ao parcial.
Uma func ao tem tres componentes:
um conjunto, chamado a fonte da func ao.
um conjunto, chamado contradomnio ou alvo da func ao.
uma regra que identica alguns pares ordenados (x,y), onde x fonte e y
contradomnio, como pertencentes a func ao. Para cada x o correspondente y e
unico.
O domnio da funcao e o conjunto dos x(os primeiros elementos dos pares ordenados),
e portanto e um subconjunto da fonte. A imagem da func ao e o conjunto dos y(os
3.3. FUNC

OES 51
segundos elementos dos pares ordenados), e portanto e um subconjunto do alvo. Se o
domnio da func ao for o mesmo que o conjunto fonte, a func ao e total.
A denic ao acima nao restringe a fonte e o alvo a conjuntos de n umeros.
A regra pela qual os elementos (x) do domnio sao casados com os elementos (y) do
contradomnio nao foi denida formalmente. A regra pode ser dada como uma expressao
para avaliar y, para cada x, ou, simplesmente, como uma tabela de pares.
Num primeiro contacto com func oes pode car a impressao de que a regra e a func ao.
Por exemplo, algumas pessoas falam de(despreocupadamente)
y = 2x
2
+ 3x + 5
como uma funcao. Com certeza 2x
2
+ 3x + 5 e uma expressao pela qual y pode ser
calculada, para cada x no domnio. Mas, a visao moderna e que a func ao e o conjunto
dos pares (x,y).
A expressao acima pode ser avaliada de varias maneiras. Por exemplo:
x (x 2 + 3) + 5 (1)
ou (2 x x) + (3 x) + 5 (2)
As expressoes (1) e (2) representam dois algoritmos distintos para a avaliacao de y
em x. Para nos, a distinc ao e importante porque o primeiro metodo de avaliac ao contem
menos cinco operac oes que o segundo. Num segundo momento abordaremos eciencias
de algoritmos.
A seguir deniremos formalmente func ao parcial e descreveremos suas propriedades.
Denicao 7 Uma funcao parcial, f, de A em B e um subconjunto do produto cartesiano
A B, no qual para cada (x,y) em f, o segundo elemento e unico para cada x. Isto e, se
(x, y
1
) f e (x, y
2
) f entao y
1
= y
2
.
O domnio de f e x[(x, y) f, que e um subconjunto de A. O conjunto A e chamado
a fonte de f.
A imagem de f e y[(x, y) f, que e um subconjunto de B. O conjunto B e chamado
o contradomnio ou alvo de f.
Um procedimento para a avalia cao de f em x, para cada x no domnio de f e chamado
um algoritmo para f.
Exemplo 35 O subconjunto de N N, f = (1, 1), (2, 1), (3, 2) e uma funcao
parcial de N em N. O subconjunto g = (1, 1), (1, 2) nao e uma funcao par-
cial. Domnio de f = 1, 2, 3 e imagem de f = 1, 2. Cada elemento(x)
do domnio e emparelhado(casado) com um unico elemento(y) da imagem. A
regra para f e exatamente uma tabela de pares.
52 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
Se f e uma func ao parcial de A em B escreveremos
f : A B
Exemplo 36 Uma funcao parcial para o maximo divisor comum pode ser
denida usando o algoritmo ja denido em outro modulo. Um algoritmo po-
de ser chamado fornecendo seu nome e providenciando valores de entrada.
Entende-se, entao, que o algoritmo retornara a sada correta, para a entrada
fornecida. Portanto, o algoritmo apresentado naquele modulo, digamos M, tal
que M(a,b), onde a e b sao inteiros positivos devolve o inteiro positivo d, com
d = mdc(a, b).
A funcao parcial mdc e denida por:
mdc : Z Z Z
mdc(m,n) =
_
_
_
m se n = 0, m ,= 0
n se m = 0, n ,= 0
algoritmo M([m[, [n[) se m ,= 0, n ,= 0
Para este exemplo, o domnio do mdc = Z Z (0, 0), que nao e igual a
fonte, indicando que esta funcao nao e total. Imagem mdc = d[d > 0
A imagem de f em x e o elemento (y) casado com x pela func ao, escrito f(x). Escre-
vemos:
y = f(x) e dizemos que y e igual a f de x, em x
e
f : x y e dizemos que f mapeia x em y
Propriedades de uma funcao
Se o domnio de f = A, dizemos que f e uma func ao total(ou mapeamento).
A func ao f diz-se sobre(ou que f e sobrejetora) B se a imagem de f e igual a B.
A func ao f diz-se injetiva(ou 1-1) quando, dado qualquer par x
1
, x
2
no domnio de f:
se f(x
1
) = f(x
2
), entao x
1
= x
2
.
Se o domnio de uma funcao e alterado, entao os pares da funcao sao alterados, e pela
denicao acima a propria funcao e alterada.
Infelizmente, existem variacoes na terminologia usadas por autores diferentes para
descrever funcoes e suas partes.

E recomenedavel checar as denicoes quando se consultar
livros diferentes.
3.3. FUNC

OES 53
Exemplo 37 Considere a funcao quadrado cuja regra e:
quadrado(x) = x
2
se o domnio e R, entao a funcao nao e injetiva(contra exemplo: (2)
2
=
(+2)
2
= 4).
Entretanto, se o domnio for restrito a R
+
(o conjunto dos n umeros reais po-
sitivos) a nova funcao e injetiva.
Exemplo 38 Identicar o domnio, fonte e imagem da funcao:
razQuadrada : N N
razQuadrada(n) = n
2
O domnio e o conjunto dos quadrados perfeitos, 0, 1, 4, 9,.... A fonte e o
conjunto dos n umeros naturais, N. A imagem e tambem N. A funcao e uma
funcao parcial sem ser total, e injetiva e sobre N.
Exemplo 39 Explique porque a seguinte funcao e total.
soma : N N N
soma(x, y) = x +y
Esta funcao e total porque esta denida para todos os pares de entradas.
Exemplo 40 Dena a funcao valor absoluto:
abs : R R
abs(x)=[x[ =
_
x se x 0
x se x < 0
Usando notacao de conjunto.
abs : R R R
abs(x) = (x, y)[x 0 e y = x) ou (x < 0 e y = x)
A funcao abs() nao e injetiva.
Um contra exemplo que comprova esta assertiva e abs(2) = abs(-2) = 2. A imagem
e o conjuntos dos reais nao negativos, um subconjunto proprio dos reais.
54 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
Exemplo 41 predecessor(n) = (n + 1, n)[n N
e uma funcao parcial de N em N. Ela nao e uma funcao total porque predecessor(0)
nao esta denido.
Exemplo 42
metade = (2n, n)[n N
e uma funcao parcial de N em N. Nao e total pois, por exemplo, metade(3) nao esta
denido.
Exemplo 43 f : R R, f(x) = 2x + 1e 1-1 e sobre, pois
por exemplo,se 2x
1
+ 1 = 2x
2
+ 1, entao x
1
= x
2
. E, claro, a imagem e todo R.
Denicao 8 (Composicao) Dadas as funcoes f : A B e g : B C a funcao
composta g f e denida para todos os x para os quais f(x) e g(f(x)) existem, por
g f : A C
g f(x) = g(f(x))
Exemplo 44 Dados f : Z Z, f(n) = 2n + 1 e
g : Z Z, g(n) = n
2
achar a funcao composta g f.
g f(n) = g(f(n)) = g(2n + 1) = (2n + 1)
2
Observe que o calculo procede do parentese interno para o mais externo, avaliando pri-
meiro f. A variavel n e chamado uma variavel livre.
Exemplo 45 Seja R
+
o conjunto dos n umeros reais positivos .
Dadas as funcoes f, g : R
+
R
+
onde f(x) = x|, g(x) =

x. Entao
f g ,= g f.
Para que f g e g f fossem iguais seria necessario mostrar que f g(x) =
g f(x) para todo x em R
+
. Para mostrar que elas nao sao iguais e suciente
mostrar que elas nao sao iguais para somente um valor de x em R
+
, isto e,
fornecer um contra exemplo.
f g(3.5) = f(g(3.5)) = f(1.8708) = 1
g f(3.5) = g(f(3.5)) = g(3) = 1.7321
Portanto, f g ,= g f.
3.3. FUNC

OES 55
Denicao 9 (Identidade) A funcao identidade I e denida por
I : A B
I(x) = x
Teorema 3 (Funcao inversa) Se a funcao f : A B e injetiva e sobre, entao existe a
funcao f
1
tal que
f
1
: B A,
chamada a inversa de f, para o qual
f f
1
= I = f
1
f.
Exemplo 46 A funcao exponencial (e
x
) e uma funcao injetiva de R sobre R
+
, o conjunto
dos reais positivos. A funcao logartmica (lnx) e uma funcao injetiva de R
+
sobre R.
Para aqueles valores de x onde ambas as funcoes estao denidas(isto e, para x > 0),
temos:
lne
x
= x = e
lnx
e portanto as funcoes sao inversas uma da outra.
Denicao 10 (Operacao) Uma operacao sobre um conjunto A e uma funcao
A A ... A A
com domnio A A ... A.
Uma operacao binaria sobre A e uma funcao A A A
Uma operacao unaria sobre A e uma funcao A A.
Exemplo 47 A multiplicacao e uma operacao binaria sobre o conjunto dos n umeros
reais.
Exemplo 48 Troque sinal e uma operacao unaria sobre o conjunto dos n umeros reais
denida por
negacao(x) = (1) x, para todo x em R.
Exemplo 49 A intersecao e uma operacao binaria sobre o conjunto potencia de um
conjunto A.
56 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
3.4 Relacoes
Quando observamos uma ligacao entre diferentes objetos podemos dizer que existe algu-
ma relacao entre eles. A nocao comum de relacionamento familiar pode ser facilmente
estendida. Considere a relacao pai de.
pedro(x) e pai de maria(y
1
), jorge(y
2
),.. e um exemplo onde a relacao tem varios
pares (x, y
1
), (x, y
2
) com o mesmo primeiro elemento e diferentes segundos elementos. Os
pares (pedro,maria), (pedro,jorge) pertence a relacao pai de . Em matematica a palavra
relacao pode ser vista como uma generalizacao de funcao, que, agora, e uma relacao com
um unico primeiro elemento.
Denicao 11 (Relacao) Uma relacao(binaria) de um conjunto A num conjunto B e um
subconjunto R de A B. Dizemos que x esta relacionado com y e escrevemos xRy se
e somente se (x, y) pertence a R. Podemos dizer que xRy e verdadeira se e somente se
(x, y) pertence a R.
Uma relac ao binaria sobre A e uma relacao binaria de A em A.
Exemplo 50 A = 1, 2, 3, 4, B = 1, 2, 3. A relacao R e denida por xRy se e
somente se x < y.
R = (1, 2), (1, 3), (2, 3) = (x, y) A B[x < y
Exemplo 51 A = B = Z. R e denido por xRy = t se e somente se x - y e par.
R = (x, y) Z Z[x y = 2k, para algum k
Neste exemplo, o conjunto de todos pares, (x,y), tal que ..., e innito.
A relacao no exemplo 51 , acima, e a congruenica modulo 2
Congruencia modulo m
Num exerccio de um outro modulo, Z
m
(m 2) foi denido como o conjunto dos n umeros
0, 1, 2, ..., (m 1) junto com certas operacoes binarias de adicao e multiplicacao. Os
n umeros em Z
m
sao, de fato, os restos possveis quando um inteiro e dividido por m.
Denicao 12 Um par de inteiros a, b, diz-se congruentes modulo m se e somente
se tem o mesmo resto quando dividido por m.
Escreveremos a b mod m e dizemos que a e congruente a b modulo m.
3.4. RELAC

OES 57
Exemplo 52 17 12 mod 5. ( Em cada caso o resto e 2).
Exemplo 53 18 3 mod 7. (Em cada caso o resto e 4).
Exemplo 54 16 0 mod 16; 14 2 mod 16. Tais propriedades sao usadas nas
representacoes complementos de dois de inteiros, em palavras de n-bits.
Teorema 4 Os inteiros a, b sao congruentes modulo m se e somente se a - b = km, para
algum inteiro k.
Prova:
1. Como a, b sao congruentes modulo m, segue que
a = q
1
m+r e b = q
2
m+r
para q
1
, q
2
, r Z
Portanto, a - b = m(q
1
q
2
), onde q
1
q
2
e um inteiro. Escolha k como sendo
q
1
q
2
, entao
a b = km
2. Dado a - b = km.
Divida b por m para obter b = qm + r e 0 r < [m[
Entao a - b = a - (qm + r)
= km (dado)
Portanto a = (qm + r) + km
= (q + k)m + r
Portanto a e b tem o mesmo resto (r) quando dividido por m.
Para um m dado, se a b mod m entao os pares (a,b) formam um subconjunto de
Z Z, que e uma relacao sem ser uma funcao. Para ver que a proposicao congruencia
mod m nao e uma funcao seja 17 2 mod 5 e 17 12 mod 5. Temos dois pares con-
gruentes com o mesmo primeiro elemento e diferentes segundos elementos. Congruencia
modulo m e uma relac ao binaria sobre Z.
A congruencia modulo 5 efetua uma particao dos inteiros em cinco classes. As classes
sao os subconjuntos dos inteiros congruentes a 0, 1, 2, 3, 4, respectivamente. Se efetuar-
mos operacoes tais como adicao e multiplicacao sobre esses inteiros modulo 5, entao a
aritmetica pode ser efetuada usando os representantes 0, 1, 2, 3, 4 para membros de cada
classe. Por exemplo,
17 + (2) 2 + 3 5 0 mod 5
58 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
Relacoes de equivalencia
A relacao congruente modulo 7 efetua uma particao dos dias do ano em 7 classes,
segunda feira, terca feira, quarta feira, quinta feira, sexta feira, sabado e domingo. Por
exemplo, o dia 178 e o dia 241 do ano sao o mesmo dia da semana, pois
178 3 mod 7 241 3 mod 7
(Em 1991 os dias 178 e 241 sao os mesmos)
Por outro lado, a relacao e um amigo nao determina uma particao no conjunto das
pessoas, formando os subconjuntos onde todos sao amigos. Por exemplo, suponha que a, b
e b, c sao amigos mas que a e c nao sejam. Os subconjuntos de a,b,c onde esta denida
a relacao de amizade sao A
1
= a, b e A
2
= b, c. Mas essa divisao nao e uma particao,
pois A
1
A
2
,= .
Gostaramos de saber que propriedades adicionais sao necessarias de modo que uma
relacao sobre um conjunto induza uma particao sobre este.
Para evitar o problema que acontece na relacao e um amigo de precisamos ter a
propriedade se a esta na relacao com b e b esta na relacao com c entao a esta na relacao
com c. Esta propriedade e chamada propriedade transitiva.
Alem disso, e preciso mais duas outras propriedades para que a relacao induza uma
partic ao sobre seu conjunto. Cada elemento do conjunto deve pertencer a sua propria
celula da particao, e portanto ele deve esta em relacao com si proprio. Esta e a chamada
propriedade reexiva.
Se um elemento x esta em relacao com y, entao eles devem estar na mesma celula
da particao e portanto y deve esta em relacao com x. Esta e chamada a propriedade da
simetria.
Formalmente:
Denicao 13 (Relacao de equivalencia) Uma relacao binaria R sobre um conjunto A e:
1. reexiva se xRx para todo x em A;
2. simetrica se xRy implica yRx, para todo x, y em A;
3. transitiva se xRy e yRz implica xRz, para todo x, y, z em A.
Uma relacao com essas tres propriedades e uma relacao de equivalencia.
Denicao 14 (Classe de equivalencia) Seja R uma relacao de equivalencia sobre um
conjunto A. Para cada x em A, a classe de equivalencia de x, sob R, e denida por
[x] = s A[sRx
3.4. RELAC

OES 59
Teorema 5 (Particao) O conjunto de todas as classes de equivalencia de A, sob uma
dada rela cao de equivalencia, forma uma partic ao de A.
Exemplo 55 A relacao comeca com a mesma letra e uma relacao de equi-
valencia sobre o conjunto de todas as palavras do Portugues. Existem 23
classes de equivalencia, que sao:
as palavras comecando com a
as palavras comecando b
. . .
O conjunto das classes de equivalencia constitui uma particao das palavras da
lngua portuguesa.
Exemplo 56 A congruencia modulo p e uma relacao de equivalencia.
1. x x mod p, pois x - x = um m ultiplo de p.
(propriedade reexiva)
2. se x y mod p, entao y x mod p
(propriedade simetrica)
pois, se x - y = qp entao, y - x = -qp, um m ultiplo de p.
3. se x y mod p e y z mod p, entao x z mod p.
(propriedade transitiva)
Prova:
x - y = qp
y - z = rp
(adicionando)x - z = (q + r)p um m ulttiplo de p
Isto e = z mod p
Portanto a congruencia modulo p e uma relacao de equivalencia.
A relacao binaria congruencia modulo p sobre Z, parte Z em p classes de equi-
valencia, pelo teorema da particao. Pelo teorema 4.1 as classes de equivalencia sao os
conjuntos de inteiros congruentes a cada um dos 0, 1, ..., p -1, modulo p.
Exemplo 57 A relacao igual e uma relacao de equivalencia sobre o conjunto Q.
As classes de equivalencia sao os conjunto de n umeros racionais iguais.
Por exemplo, ...-2/-3, 2/3, 4/6, 6/9, 8/12, ... e uma classe de equivalencia.
60 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
Exemplo 58 Uma relacao e denida sobre os inteiros por ab = t se e somente se a -
b e par. Mostremos que e trasitiva.
Prova: O objetivo e mostrar que se ab e bc, entao ac.
a - b e par. b - c e par.
Portanto, (a - b) + (b - c) = par + par = par.
Portanto a - c e par e ac.
Logo e transitiva.
Relacoes de ordens parciais
A ideia de que os objetos podem ser colocados em ordem e muito importante em ma-
tematica. O ponto e que a primeira motivacao para a denicao de ordem vem da relacao
menor ou igual que e nao de menor que. Paul Halmos(1961, pg 54)
2
diz:
Nao existe razao profunda para isso. Acontece que a generaliza cao de menor
ou igual que ocorre mais frequentemente e e mais amigavel ao tratamento
algebrico.
Denicao 15 (Antisimetria) Uma relacao R sobre um conjunto A e antisimetrica se
para todos x, y em A, se xRy e yRx entao x = y.
Se a relacao e reexiva, antisimetrica e trasitiva entao ela e uma ordem parcial.
Denicao 16 (Ordem parcial) Uma ordem parcial sobre um conjunto A e uma relacao
que e reexiva, antisimetrica e transitiva. Se alem disso, para todo par x, y em A, xRy
ou yRx, entao R e uma ordem total sobre A.
Exemplo 59 Devide e uma ordem parcial sobre o conjunto A = 1, 2, 3, 4, 5, 6. Nao
e uma ordem total pois alguns pares nao sao comparaveis. Por exemplo, 3 divide 5 e f
e 5 divide 3 e f.
Exemplo 60 A relacao e um subconjunto de e uma ordem parcial sobre o conjunto
potencia a, b, c, d . A relacao nao e uma ordem total, pois para um par de conjuntos
tais como a, b e b, c, a relacao nao se da em nenhuma direcao.
Exemplo 61 Provemos que divide e uma ordem total sobe o conjunto
A = 1, 2, 4, 8, 16
Prova:
2
Halnos, P.R.,(1961), Naive set theory, Van Nostrand.
3.4. RELAC

OES 61
b = ma e a = nb, para alguns inteiros m, n.
Portanto, b = mnb(substituicao) e mn = 1.
Agora m, n sao inteiros, logo m = n = 1 ou m = n = -1.
Mas todos os membros de A sao positivos, portanto a = b.
Portanto, divide e antisimetrica.
A prova deve estabelecer, tambem, que divide e reexiva e transitiva. Para
provar que divide e uma ordem total, devemos mostrar que para cada par a,
b escolhidos em A, ou a divide b ou b divide a.
A relacao no exemplo anterior e uma ordem total sobre A.
Se uma ordem total esta denida sobre um conjunto, entao todo par de elementos no
conjunto pode ser comparado, decidindo qual dos dois e maior qual menor. Tal conjunto
pode ser um conjunto ordenado. Um conjunto, S, com uma relacao de ordem parcial
sera denotado por (S,). Um conjunto ordenado de n umeros diz-se contnuo se para
cada par de n umeros distintos existe um terceiro que esta entre eles.
Denicao 17 (Princpio da boa ordem) Um conjunto ordenado diz-se bem ordenado se
e somente se todo subconjunto nao vazio tem um primeiro elemento.
Por exemplo, O conjunto ordenado (N) e bem ordenado. Qualquer subconjunto dos
n umeros naturais tem um menor elemento. Por exemplo, o conjunto dos n umeros naturais
menor que 2 tem 0 como o primeiro elemento.
Considere o conjunto ordenado (Z, ). Alguns subconjunto tem um primeiro elemento,
por exemplo, -2, 3, -4. Mas existem conjuntos tais como, por exemplo, o conjunto dos
inteiros menor que 2 , que nao tem o menor elemento. Segue que o conjunto dos inteiros
com a relacao de ordem menor que nao e bem ordenado. A propriedade da boa ordem,
apesar de sua simplicidade, e muito importante. Se um conjunto possuir essa propriedade
entao e possvel usar inducao matematica, um metodo poderoso de fazer provas, para
proposicoes denidas sobre o conjunto.
Sequencias
Duas estruturas que podem ser uteis para especicar colecoes de objetos ou elementos sao
conjuntos, e
sequencia.
Num conjunto a ordem nao e importante. Assim a,b, c = c, a, b. Mas numa
sequencia, a ordem e uma propriedade exigida. A sequencia a
1
, a
2
, a
3
e a
2
, a
3
, a
1
sao
62 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
diferentes. Podemos falar, por exemplo, de a
3
como o terceiro membro da sequencia a
1
,
a
2
, a
3
, a
4
.
Uma maneira de veicular essa ideia e denir uma sequencia como uma aplicacao, ou
funcao cujo domnio e um subconjunto de N.
Denicao 18 Uma sequencia e uma funcao cujo domnio e o conjunto dos n umeros
naturais , N = 0, 1, 2, 3,..., ou `as vezes, m, m+1,...,n onde m usualmente e 1.
Uma sequencia pode ser nita, caso em que o domnio e m, m+1,...,n e novamente
e usual que m seja 0 ou 1.
Algumas estruturas muito frequentes em computacao:
string uma sequencia de caracteres de um alfabeto.
(`as vezes chamada palavra ou cadeia).
lista uma sequencia de registros(que por sua vez pode
ser tambem uma lista).
registo uma sequencia de elementos de dados.
texto uma sequencia de palavras alternando com caracteres de
espaco, vrgula, ponto,...
Para alguns objetivos, as listas e os registros podem, com grande utilidade, ser pensados
como conjuntos.
As sequencias podem ser descritas:
1. escrevendo os membros da sequencia.
Exemplo: 1, 3, 5,..., 99(uma sequencia nita).
2. por uma formula, fornecendo o termo geral.
exemplo: a
1
, a
2
, ..., a
n
, ...onde a
n
= 2n 1(uma sequencia innita).
3. por um procedimento recursivo.
exemplo 1: A sequencia a
1
, a
2
, ..., a
n
, ...onde
a
n
=
_
1 se n = 1
a
n1
+ 2 caso contrario
A formula gera a sequencia
1, 3, 5, 7, ...
onde cada termo e obtido de seu predecessor na sequencia adicionando 2.
3.4. RELAC

OES 63
exemplo 2: A sequencia
x
0
, x
1
, x
2
, ..., x
n
, ...
e denida pela formula x
n
= 3x
n1
2x
n2
, para todo n 1 e com a condicao
inicial x
0
= 0 e x
1
= 1. A tabela seguinte mostra o calculo dos primeiros cinco
termos
n x
n
0 0
1 1
2 2 1 2 0 = 3
3 3 3 2 1 = 7
4 3 7 2 3 = 15
A sequencia e 0, 1, 3, 7, 15,...
String
Um caractere e um smbolo como qualquer um dos a, b, 1, 2, *, (, .., .
Um alfabeto e um conjunto de caracteres, como, por exemplo:
1. o alfabeto de parenteses e (,);
2. o alfbeto binario e 0,1;
3. o alfabeto de dicionario e a,b,c,...,z;
4. o alfabeto de caracteres para um teclado e o conjunto de caracteres produzidos ope-
rando as teclas no teclado.
Uma string(cadeia) e uma sequencia de caracteres de um alfabeto. Normalmente os
caracteres sao colocados lado a lado, nao separados por vrgulas(dizemos que sao justa-
postos). O comprimento de uma string e o n umero de caracteres nela.
`
As vezes uma
string e chamada uma palavra, embora necessitemos ter algum signicado na linguagem
ordinaria.
Exemplo 62 110, 00001, e 011010 sao strings do alfabeto binario. Seus comprimento
sao 3, 5 e 6, respectivamente.
Exemplo 63 ab, aa, bc sao strings(cadeias) de comprimentos dois do alfabeto a, b, c.
O conjunto de strings de comprimento n de um alfabeto A e denotado por A
n
.
64 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
Exemplo 64 O conjunto de strings de comprimento 2 do alfabeto binario 0, 1 e:
A
2
= 11, 01, 10, 11
Exemplo 65 O conjunto de strings de comprimento 2 do alfabeto a, b, c e:
aa, ab, ac, ba, bb, bc, ca, cb, cc
Um string de comprimento 0 e denido como sendo o string vazio escrito , nestas
notas. Existe exatamente um string vazio. Observe que

nao e 0 ou o caractere de
espaco e / A, para todo alfabeto A. A
0
e o conjunto que consiste de .
Um conjunto universal adequado para discussao de strings seria o conjuntos dos strings
de todos os comprimentos de um alfabeto dado.
Denicao 19 (Fecho) O fecho(Kleene) do alfabeto A e o conjunto de todas as strings,
de todos os comprimentos, que podem ser construdas dos caracteres de A:
A

= A
0
A
1
A
2
... =

_
i=0
A
i
O conjunto de todas as strings nao vazias de A e denida por
A
+
= A
1
A
2
... =

_
i=1
A
i
Os conjuntos A

e A
+
sao conjuntos universais possveis para strings. Eles sao de-
nidos construtivamente, nao correndo o risco, portanto, de paradoxo.
Denicao 20 (Concatena) A operacao binaria concatena sobre A

e uma funcao de
A

em A

denida por
concatena(, ) =
para toas as strings , A

.
Exemplo 66 concatena(011,01) = 01101
Exemplo 67 concatena(alfa, beto) = alfabeto.
3.5. EXERC

ICIOS 65
3.5 Exerccios
1. (a) Escrever o conjunto de caracteres na palavra matematica
(b) Gerar todos os subconjuntos de a,b.
(c) Use um predicado para descrever o conjunto 1,2,4,8,16,.....
2. Descreva em palavras os seguintes conjuntos.

E verdade que A B = C? Explique
sua resposta. O conjunto universal e o conjunto dos inteiros.
A = j[j = 8t e t Z
B = j[j = 6t e t Z
C = j[j = 48t e t Z
3. Achar o n umero de inteiros positivos menor ou igual que 100 que sao mpares ou o
quadrado de um inteiro. O conjunto de tais inteiro esta bem denido? 25 pertence
a ele?
4. Dois dados sao arremecados. Cada um e numerado 1,2,...,6 de modo que o conjunto
de todas as sadas, S, possveis e (1,1),(1,2),(2,1),...,(6,6). O que e n(S)? Partir
S em subconjuntos nos quais a soma dos dois dados sejam a mesma.
5. Para todos conjuntos A, O conjunto potencia de A, escrito T(A), e denido como
sendo o cnjunto de todos os subconjuntos de A.
(a) Dado A = a,b,c achar T(A).
(b) Dado n(S) = k, achar o n umero de elementos em T(S).
6. Uma tela de 80 colunas e 25 linhas esta denida pelo conjunto
S = (c, r)[(c, r) N N e 1 c 80 e 1 r 25
onde c representa o n umero de colunas e r o n umeros de linhas de uma posicao de
caracteres ou ponto sobre a tela. S e o conjunto universal para esta questao.
As janelas W
1
, W
2
sao denidas por
W
1
= (c, r)[20 c 40 e 10 r 20
W
2
= (c, r)[30 c 50 e 5 r 15
66 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
Dena os conjuntos (a) W
1
W
2
(b) W
1
W
2
, da mesma maneira.
7. (O paradoxo do barbeiro) Numa certa cidade existia um barbeiro. O barbeiro
barbeava todos os homens que nao se barbeavam a si proprios. Seja B o conjunto
de todos os homens barbeados pelo barbeiro. B esta bem denido?
8. Identique as funcoes entre as seguintes relacoes.
(a) (0,0),(1,1),(2,2),(3,2)
(b) (0,0),(0,-1)
9. A funcao media e denida por:
media : N N N
media(x, y) =
x+y
2
(a) Calcule media(8,12)
(b) media e uma funcao total?
(c) Achar o domnio de media.
(d) media e uma funcao injetiva?
10. N = 0, 1, 2, 3....
menos : N N N
menos(x, y) = x y se x y ; 0 caso contrario
menos e uma funcao total? Tem inversa? Se nao for o caso, por que?

E sobre?
11. (Use uma calculadora para esta questao e a proxima). Para esta questao dena o
conjunto P = x R[x 0. A funcao f e denida por:
f : P P
f(x) = f(x) =

x
A funcao g e denida por:
g : R P
g(x) = e
x
3.5. EXERC

ICIOS 67
Calcule (a) f(7) (b) g f(7) (c) g(7) (d) f g(7).
12. Dena a funcao f pela funcao calculadora ln, e a funcao g por pela calculadora e
x
.
Achar f g(3.6). Comente sua resposta.
13. Explique porque, se n e um inteiro mpar, entao
(n + 1)/2| = (n + 1)/2
14. Uma funcao f : A B diz-se uma-uma se e somente se,
para todo x, y A se x ,= y entao f(x) ,= f(y)
Mostre que a funcao
g : Z Z

g(n) = n mod 8
nao e uma - uma.
15. A funcao sucessor e denida por
sucessor : N N
sucessor(n) = n + 1
A funcao sucessor e total?

E uma - uma?

E sobre? A funcao sucessor tem inversa?
16. A funcao g e denida sobre o conjunto Z
7
= 0, 1, 2, 3, 4, ..., 6 por
g : Z
7
Z
7
g(x) = 2x + 3 mod 7
(a) Achar o valor de g(0), g(1), g(3).
(b) g e uma funcao total?
68 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
(c) g e injetiva ?
(d) g tem inversa?
(e) g e sobre Z
7
?
17. A funcao f e denida sobre o conjunto Z
16
= 0, 1, 2, ..., 15 por
f : Z
16
Z
16
f(x) = x
2
+ 5 mod 16
(a) Achar o valor de f(0), f(1), f(4).
(b) f e total?
(c) f e injetiva?
(d) f tem inversa?
(e) f e sobre Z
16
?
18. (a) Mostre que 51 6 mod 9.
(b) Mostre que 124 7 mod 9.
(c) Mostre que 51 + 124 = 6 + 7 mod 9.
Os exerccios acima ilustram dois teoremas que pedimos para que pedimos a demons-
tracao:
(d) Prove que, se u v mod m e t w mod m
entao, u +t v +w mod m.
(e) Prove que, se u = abc
10
, onde a,b,c sao dgitos de u representados na base 10,
entao u a +b +c mod 9.
19. (a) Mostre que 27 5 mod 11 e 35 2 mod 11.
(b) Mostre que 27 35 5 2 mod 11.
(c) Prove que, se u v mod m e t w mod m, entao u t v w mod m.
20. Uma relacao e denida sobre os inteiros por ab = t se e somente se a - b e par.
Quais sao as propriedades que deve possuir para ser uma relacao de equivalencia?
Prove essas propriedades para .
3.5. EXERC

ICIOS 69
21. Nesta questao o smbolo representa e e o smbolo representa ou. Seja S o
conjunto de todas as posicoes de tela denida pelo conjunto
S = (c, r) Z Z[(1 c 80) (1 r 30)
Seja B = t, f o conjunto dos valores booleanos. A relacao segue e denida por
segue : S S B
(c
1
, r
1
) segue (c
2
, r
2
) =
_
t se (c
1
c
2
) (r
1
= r
2
) (r
1
> r
2
)
f caso contrario
(a) Descreva a relacao segue em palavras.
(b) A relacao segue nao e uma relacao parcial pois, ela falha duas das tres proprie-
dades exigidas para uma ordem parcial. Qual dessas tres propriedades de uma
ordem parcial se verica para segue? Escreva uma armativa do que deve ser
provado para mostrar que segue satisfaz as propridades que voce alega.
22. A relacao divide(escrita , nesta questao) e denida sobre os n umeros naturais
por
ab = t
se e somente se b = ka, para algum n umero natural k e a ,= 0.
Prove que e antisimetrica.
23. A relacao potencia de(escrita , nesta questao) e denida sobre os inteiros por
ab = t, se e somente se a = b
n
, para algum n umero natural n.
Prove que e antisimetrica. Quais das propriedades de precisariam ser provadas
para mostrar que ela e uma ordem parcial?
24. A relacao divide e denida sobre o conjunto 3,9,27. a divide b signica
b = ma, para algum inteiro positivo m.
Mostre que divide e transitiva. Explique porque divide e uma ordem total.
25. Liste os primeiros termos da sequencia a
0
, a
1
, ..., a
n
, ..., onde
a
n
=
_
2 se n = 0
a
n1
+ 2, senao
70 CAP

ITULO 3. CONJUNTOS, FUNC



OES E RELAC

OES
26. Liste os primeiros termos da sequencia
x
0
, x
1
, x
2
, ..., x
n
, ...
denida pela formula x
n
= 3x
n1
2x
n2
, para todo n 1 e as condicoes iniciais
x
0
= 0 e x
1
= 1.
27. (a) Liste A
3
, o conjunto de todas as strings do alfabeto A, onde a = 0, 1.
(b) Concatene as strings = cap, = az.
28. As sequencias de inteiros s
n
d
n
sao construdas como segue:
s
1
= 1, d
1
= 1. s
n+1
= s
n
+d
n
, d
n+1
= 2s
n
+d
n
, para n = 1, 2, 3, ..
(a) Calcule s
4
, d
4
.
(b) Calcule r =
d
4
s
4
.
(c) Ache a percentagem de erro relativo ao tomar r, de (b) acima, como uma apro-
ximacao para

2.
29. O conjunto universal para esta questao e
U = s Z[1 < x < 101
Os seguintes subconjuntos de U sao denidos:
S
k
= s[ke o maior fator primo de x
(a) Descreva os conjuntos S
5
, S
11
.
(b) Qual e o valor de n(S
41
)?
Explique por que S
2
, S
3
, S
5
, ..., S
97
, formam uma particao de U.
Captulo 4
Logica
4.1 Introducao
Apos completar esta parte deveremos ser capazes de analizar proposicoes compostas,
traduzir do Portugues para expressoes simbolicas da logica e raciocinar corretamente a
partir das leis logicas aceitas. Deveremos ser capazes de usar os quanticadores existencial
e universal com predicados.
Logica e a ciencia do raciocnio. Nesta parte, estamos interessados, principalmente,
com logica matematica, incluindo uma algebra de smbolos logicos. A logica simbolica
moderna foi estabelecida por George Boole(1815-64) e outros para possibilitar o raciocnio
separado das ambiguidades possveis e argumentos emotivos que podem estar presentes
na linguagem comum. A ideia de um calculo universal no qual todas as verdades do
raciocnio seria reduzidas a uma especie de calculo tem incio com Leibniz(1646-1716).
Este sistema de logica simbolica, com sua algebra associada, foi aproveitado por aqueles
que construiram os primeiros computadores, como um modelo de raciocnio correto que
seria implementado por circuitos eletronicos.
Existem no mnimo seis razoes porque estudamos logica.
No nvel do hardware, o uso de logica simbolica pode simplicar enormemente os
projetos de circuitos logicos para implementar instrucoes.
No nvel de software, um conhecimento de logica simbolica ajuda no projeto de
programas. Muitas linguagens de computadores usa variaveis booleanas e seus ope-
radores associados. As tabelas verdades sao particularmente uteis para decidir se
duas assertivas sao logicamente equivalentes.
No nvel da especicacao de algoritmos, a logica simbolica contribui com uma lingua-
gem precisa. Embora ainda num estagio de desenvolvimento, existe uma promessa
de que a logica simbolica ajudara no projeto, prova de corretude e manutencao de
programas.
71
72 CAP

ITULO 4. L

OGICA
Varias linguagens de computadores sao baseadas em logica, por exemplo, Prolog.
Muitos acreditam que as linguagens baseadas em logica tem vantagens na analise de
informacao num banco de dados.
No raciocnio matematico e na construcao de provas matematicas, um estudo de
logica pode ser util.
No raciocnio comum, a logica pode ser util para esclarecer argumentos.
Proposic oes compostas e tabelas de verdade
Os objetos basicos de nossa discussao podem ser chamados assertivas ou proposicoes. A
propriedade essencial de uma arsertiva ou proposicao e que ela tem associada a si um
rotulo(t) ou (v), mas nao ambos.
Exemplo 68 1. 6 e primo. 2. 5 e primo. 3. (3 < 2). 4. Salvador e a
capital do Brasil. 5. H
2
O e um acido. 6. O lucro da transacao e 10.000
reais. As assertivas de 1. a 4. tem rotulos f, t, t, f. Para 5. e 6. deveremos
consultar um qumico e um economista, respectivamente.

E claro que, verdadeiramente, nao estamos interessados nas atuais verdades ou falsi-
dades das proposicoes acima. A nos interessa como calcular o valor de verdade de uma
sentenca composta a partir dos valores de verdade das sentencas elementares, tais como
aquelas listadas acima. A natureza exata das assertivas elementares pode ser deixada para
os especialistas no campo particular. As assertivas podem estar em qualquer linguagem,
por exemplo, Ingles, Portugues, uma linguagem de programacao, um sistema matematico
ou uma linguagem de inteligencia articial. As sentencas elementares
1
sao atomicas
no sentido de que nao podem mais ser quebradas em componentes mais simples.
As letras p,q,r,s,...representam sentencas nao especicadas. Os smbolos , , , ,
serao usados para representar(denotar) as operacoes pelas quais sentencas compostas sao
construdas a partir das sentencas mais simples. Esses smbolos correspondem, como
sera explicado mais adiante, respectivemente, aos conectivos, nao, e, ou, se, ...,
entao,.. e se ... e somente se ....
As proposicoes compostas podem ser construdas aplicando as operacoes sobre uma ou
mais proposicoes dadas. Um conectivo logico e denido pela sua tabela de verdade. A
tabela de verdade de um conectivo mostra como o valor de verdade de uma proposicao
composta, envolvendo o conectivo e as proposicoes elementares assim compostasou co-
nectadas, dependem dos valores de verdade das proposicoes mais simples. A assertiva
composta e avaliada para cada combinacao possvel dos valores de verdade das assertivas
1
Estamos usando como sinonimos os termos assertiva, sentenca e proposicao, embora num sistema
lingustico mais elaborado, estes tres termos tenham signicados diferentes.
4.1. INTRODUC

AO 73
atomicas no composto. O rotulo de verdade de um conectivo pretende, assim, reetir o
signicado natural do nome do conectivo. Em alguns casos, entretanto, a mesma palavra
tem signicados diferentes em contextos diferents e, portanto, nao e possvel fazer com que
a denicao da tabela de verdade de um conectivo represente todos os signicados possveis
associados a esse nome. A algebra da logica resultante e autoexplicativa no sentido de
que ela fornece um sistema de logica completamente conavel. No campo do projeto de
circuitos de computadores, a algebra da logica tem sido de grande importancia.
Exemplo 69 Se chover entao o rodeio sera cancelado.
Existe uma sugestao de que havera um rodeio se nao chover. Observe que a
sentenca nao da nenhuma orientacao se acontecer de nao chover e nao haja
rodeio.
Exemplo 70 Se o cordao de emergencia for acionado o trem do metro parara.
Neste exemplo, nao existe nenhuma sugestao do que acontecera se o cordao de
emergencia nao for acionado. O motorista pode parar o trem porque chegou
na proxima estacao ou porque apareceu o sinal vermelho. Assim, a assertiva
nao da nenhuma indicacao do que acontecera caso o cordao de emergencia
nao seja acionado. Portanto, nao podera haver nenhuma reclamacao caso o
cordao nao seja acionado, porem, mesmo assim o trem venha a parar.
Com os exemplos acima pretendemos mostrar que as palavras se, ...,entao,... tem
um signicado preciso, ligeiramente diferente do signicado em Portugues, dependendo
do contexto. Entretanto, sera visto abaixo que se ..., entao ... tem um unico signcado
preciso quando denido em logica.

E este signicado que sera usado num computador
para avaliar proposic oes compostas envolvendo conectivos logicos.
Nao (negacao)
Usaremos p para representar a negacao da proposicao p. A negacao e denida pela
tabela de verdade abaixo.
p p
t f
f t
A negacao em nossa algebra pretende modelar a negacao na linguagem comum. Des-
se modo, o smbolo pode ser lido convinientemente como nao, t pode ser lido como
verdadeiro e f como falso. Todas as combinacoes possveis dos valores de verdade
estao listados numa coluna na esquerda sob p. A coluna na direita mostra os valores
74 CAP

ITULO 4. L

OGICA
correspondentes da proposicao p. Existem duas linhas na tabela, pois a proposicao ele-
mentar(atomica) p tem dois valores de verdade possveis.
Por exemplo, se p representa a assertiva (3 < 2) entao p representara a assertiva
3 2. Neste caso, p e verdadeiro enquando p e falso. Este caso e coberto pela primeira
linha da tabela de verdade.
Exemplo 71 Mostrar que p e (p) tem a mesma tabela de verdade.
p p (p)
t f t
f t f
As proposi coes p e (p) tem valores de verdade identicos sobre cada linha da
tabela verdade(compare as colunas 1 e 3). Dizemos que (p) e logicamente
equivalente a p.
A proposicao (p) normalmente e escrita p, pois nao existe possibilidade de con-
fundir seu signicado.
A negacao pode ser vista como uma funcao que transforma proposicoes em proposicoes.
4.1.0.1 e(conjuncao)
Usaremos pq para representar a conjuncao (isto e, e) das proposicoes p e q. A conjuncao
e denida pela tabela de verdade abaixo.
p q p q
t t t
t f f
f t f
f f f
A conjuncao em nossa algebra pretende modelar o conectivo e da linguagem comum.
Assim, o pode ser lido convenientemente por e.
Existem quatro combinacoes de valores de verdade possveis. Por isso a tabela de
verdade tem quatro linhas. O operador mapeia(ou transforma) cada par de assertivas
numa assertiva, e portanto, ele e um operador binario sobre assertivas.
Observe que alterando as ordens de p e q a tabela de valores de verdade nao se altera.
Isto signica que as proposicoes p q e q p sao logicamente equivalentes.
Na linguagem comum pode existir diferencas nos siginicados dos diferentes usos de
e .
Compare
ele cou com febre e tomou um copo de agua
4.1. INTRODUC

AO 75
com
ele tomou um copo de agua e cou febre
A mudaca na ordem parece alterar o signicado da assertiva porque associamos o
conceito de tempo com cada evento na ordem em que ele foi mencionado. Pelo menos
suspeitamos que o evento que foi mencionado primeiro inuenciou o segundo. Portanto,
esse uso particular de e nao pode ser bem modelado pelo nosso conectivo e .
Exemplo 72 Mostrar que p p e logicamente equivalente(de hora em diante, diremos,
simplesmente, equivalente) a p.
p p p p
t t t
f f f
linha 1: quando p e t, p p e t t, que e t da tabela de verdade para e. O
valor t e colocado sob o em p p
linha 2: quando p e f, p p e f f, que e f.
A tabela de verdade para p p e a mesma que a tabela de verdade para p, e
portanto p p e equivalente a p.
Exemplo 73 Mostrar que p p e logicamente falso. Por isto queremos
signicar que os valores de verdade de p p sao todos f.
p (p) p p p p
t f f f
f f t f
Tiramos o parentese de p porque esta claro que se refere `a assertiva ime-
diatamente seguinte. Na tabela de verdade, avaliamos a assertiva na ordem
da esquerda para a direita. Primeiro p, entao p p. Para cada valor de p,
p p e f. Portanto, concluimos que p e logicamente falsa.
A propsicao composta que tem o valor f, para todos os valores possveis de suas pro-
posicoes elementares e denominada uma contradicao.
Os proximos operadores modelam diferentes usos da palava ou. No contexto um
ou outro ou ambos dizemos que esta sendo usado o ou inclusivo. No contexto ou um ou
o outro, mas nao ambos, dizemos que esta sendo usado o ou exclusivo.
76 CAP

ITULO 4. L

OGICA
ou(disjuncao)
Usaremos o smbolo para representar o ou inclusivo construdo das proposicoes p e
q. O operador de ou inclusivo e denido pela tabela abaixo.
p q p q
t t t
t t t
f t t
f f f
Em nossa algebra, com o ou inclusive pretendemos modelar o conectivo ou, na
linguagem comum. O smbolo pode ser lido por conveniencia por ou. O conectivo
ou denido acima modela o uso comum da palavra ou ilustrado no seguinte exemplo.
Se o arquivo de controle ou o arquivo de dados nao for encontrado entao envie
a mensagem arguivo(s) nao encontrado e aborte(terminar sem resolver o
problema) a sessao
Gostaramos que a acao(de abortar) fosse executada se ou um arquivo ou ambos nao
fossem encontrados.
O operador mapeia pares de proposicoes numa proposicao.
Exemplo 74 Mostrar que p p e logicamente verdadeira. Com isto que-
remos signicar que o valor verdade da proposicao p p e t, em toda linha
da tabela de verdade. (Mais adiante isto sera referido como a lei do terceiro
excludo.)
p (p) p (p p)
t t f t
f f t t
Avaliar p, em seguida p, entao p p. Para cada valor de p, p p e t. Por
isso concluimos que p p e logicamente verdadeira.
Uma proposicao composta que tem o valor t, para todos os valores possveis das pro-
posicoes elementares e chamada uma tautologia.
Exemplo 75 Leis de De Morgan. Mostre que:
(a) (p q) e logicamente equivalente a p q.
(b) (p q) e logicamente a p q.
4.1. INTRODUC

AO 77
(a)
(esquerda) (direita)
p q p q (p q) p q (p) (q)
t t t f f f f
t f f t f t t
f t f t t f t
f f f t t t t
(p q) e logicamennte equivalente a p q, pois eles tem a mesma tabela
de verdade, fttt.
(b)
(esquerda) (direita)
p q p q (p q) p q (p) (q)
t t t f f f f
t f t f f t f
f t t f t f f
f f f t t t t
(p q) e logicamente a p q porque ambas possuem a mesma tabela de
verdade, ffft.
ou(exclusivo)
Usaremos para representar o conectivo ou exclusivo. Ele esta denido pela tabela
abaixo.
p q pq
t t f
t f t
f t t
f f f
O conectivo ou exclusivo pretende modelar o uso da palavra ou como aparece na
seguinte sentenca.
Quer voce venha ou nao, tome uma decisao
O exemplo em matematica que segue pretende enfatiza o uso do ou excusivo.
Se x < 0 ou y < 0, mas nao ambos, entao xy < 0.
se p entao q(condicional)
Usaremos p q para representar o condicional se p entao q ou p somente se q, onde
p e q sao proposicoes. O operador condicional e denido pela tabela de verdade abaixo.
78 CAP

ITULO 4. L

OGICA
p q
t t t
t f f
f t t
f f t
Em nossa algebra, o operador condicional pretende modelar o condicional na linguagem
comum. Entretanto, alguns leitores podem contestar a linha 3. Considere o seguinte
argumento.
Prove se (1 = 0) entao (1 = 1).
Prova:
Nos foi dado 0 = 1.
Portanto 1 = 0,
e usando a adicao 1 = 1.
A proposicao (0=1) e f e a proposicao (1=1) e t. A prova acima mostra que se f
entao t. O argumento concorda com a linha 3 da tabela de verdade para o condicional.
Como condicional e muito usado em argumentos, veremos algumas de suas formas
associadas.
condicional reversa contrapositiva inversa
p q p q q p q p p q
t t t t t t
t f f t f t
f t t f t f
f f t t t t
Observe que a reversa nao e logicamente equivalente `a condicional.
A contrapositiva e logicamente equivalente `a condicional.
Se uma condicional for verdadeira entao nao podemos dizer nada sobre a sua reversa
em geral. A reversa pode ser verdadeira ou falsa dependendo da proposicao particular.
Exemplo 76 (para ilustrar as formas associadas com o condicional):
Seja p a proposicao Eu moro em Braslia.
Seja q a proposicao Eu moro no Brasil.
A condicional p q diz, Se eu moro em Braslia entao eu moro no Brasil.
concordamos que isto e verdadeiro(a capital do Brasil e Braslia).
A reversa q p diz que, Se eu moro no Brasil entao eu moro em Braslia
e isto obviamente nao e verdadeiro.
Entretanto, a contrapositiva, q p diz Se eu nao moro no Brasil entao
nao moro em Braslia, esta correto e e logicamente equivalente `a condicional
acima
4.1. INTRODUC

AO 79
Outra equivalencia logica do condicional p q e a proposicao p q. Esta equi-
valencia e muito util, embora ela nao seja intuitivamente clara. A tabela de verdade
abaixo estabelece isso.
p q p q p q
t t t t
t f f f
f t t t
f f t t
p se e somente se(bicondicional)
Os smbolos p q, abaixo sao p se e somente se q.
O bicondicional e logicamente equivalente a (p q) (q p). Isto e, o bicondicional
e logicamente equivalente ao condicional e sua reversa. Segue a tabela de verdade para o
bicondicional.
p q p q
t t t
t f f
f t f
f f t
Maneiras alternativas de estabelecer o condicional
Talvez porque gostemos muito de argumentar hajam muitas frases que veiculam o signi-
cado do condicional. O condicional p q pode ser dado como:
se p entao q, p somente se q, q se p, todos os p sao sao q, p e suciente para q ou q e
necessario para p.
O bicondicional p q pode ser lido como p se e somente se q ou p e necessario e
suciente para q.
Omissao de parenteses(precedencias dos conectivos)
Na algebra comum, classicamos os smbolos
+, , ,
para evitar o uso excessivo de parenteses. Portanto, 3+4 5 signica (3) +(4 5),
isto e, 17 e nao (3 + 4) 5, isto e, 5.
Faremos o mesmo aqui informalmente. A classicacao e
80 CAP

ITULO 4. L

OGICA

,
,
do mais baixo para o mais alto. A regra e que o conectivo mais baixo na classicacao
se estende ao mais baixo escopo. Para preencher os parenteses ausentes, inicie com o
conectivo mais baixo na classicacao e insira os parenteses mais proximos permissveis,
sem quebrar os parenteses existentes, e entao mova-se ao proximo conectivo de mais baixa
clssicacao, e assim por diante.
Exemplos:
1. p q signica ((p) q).
2. p q r s signica ((p) q) (r s)).
3. p q r e ambguo.

E preciso parenteses para mostrar o que ele signica.
4. p q r nao e permitido (ate logo mais adiante).
5. p q r nao e permitido.
Observacao 1 Em cursos de computacao e identicado com e e identicado
com +.

E comum ter precedencia sobre +, em analogia com a aritmetica comum.
Portanto, os estudantes de computacao desconam que o item 3 nao e ambguo.
4.2 Raciocinando com hipoteses logicas
Um calculo de proposicoes e um processo com o qual raciocinamos ou computamos usan-
do smbolos. Para termos um calculo precisamos de axiomas ou fatos assumidos e
regras, para manipular esses axiomas, a m de produzir novos fatos. Um exemplo de
um axioma e p (p) que e logicamente equivalente a t, para toda proposicao. Um
exemplo de uma regra e a regra da substituicao, que nos permite substituir qualquer
proposicao por outra logicamente equivalente, para obter uma nova proposicao(ou teo-
rema). Usando a regra da substituicao, substitua p por p, no axioma acima. Entao,
p p e uma nova proposicao logicamente verdadeira.
Este metodo de raciocinar e mais dinamico que o metodo da tabela de verdade, intro-
duzido acima, mas ele e consistente com a abordagem da tabela de verdade, no sentido de
que cada axioma que assumirmos poderia ser estabelecido pela tabela de verdade.
Denicao 21 (Tautologia) Uma proposicao composta que tem valor t, para todos os
valores das proposic oes elementares, e chamada uma tautologia.
4.2. RACIOCINANDO COM HIP

OTESES L

OGICAS 81
Denicao 22 (Contradicao) Uma proposicao composta que tem o valor f, para todos os
valores das proposic oes constituintes, e chamada contradicao.
Denicao 23 (Contigencia) Uma proposicao composta que tem valor t, para alguns va-
lores das proposic oes constituintes e f, para outros, e chamada contigente.
Denicao 24 (Logicamente equivalente) Dizemos que as proposicoes p e q sao logica-
mente equivalentes se e somente se p q e uma tautologia.
As denicoes acima emergem da abordagem da tabela de verdade adotada anterior-
mente. Entretanto, e razoavel aceitarmos proposicoes tais como
uma proposicao e logicamente equivalente a si proprio (1)
e
ou uma proposicao ou sua negacao e verdadeira (2)
como sendo universalmente verdadeira, sem sentir necessidade de explorar todas as
possibilidades das tabelas de verdade.
Adotando essa abordagem, logicamente equivalente a se torna uma relacao funda-
mental denida sobre o conjunto de todas as proposicoes que podem ser construdas das
proposicoes elementares p,q,r,..., usando os conectivos logicos , , , , , introduzidos
anteriormente.
Uma tautologia e agora ua proposic ao que e logicamente equivalente a t.
Uma contradicao e uma proposicao que e logicamente equivalente a f.
As proposicoes (1) e (2) acima se tornam
p e logicamente equivalente a q (1

)
p negp e logicamente equivalente a t (2

)
Como e muito tedioso repetir a frase e logicamente equivalente a, em todo nosso
raciocnio, substituimo-la pelo smbolo . Alguns autores usam o smbolo . O
smbolo , aqui, representa uma relac ao de equivalencia entre proposic oes. (Obser-
ve que na sentenca a b mod m, onde a, b, m sao inteiros, o smbolo representa
congruencia mod m. O smbolo nao esta denido isoladamente, mas somente relati-
vamente a um dado conjunto de objetos, por exemplo, proposic oes ou inteiros.)
As proposicoes (1) e (2), acima, podem agora ser escritas:
Lei da identidade p p (1

)
Lei do terceiro excludo p p t (2

E importante observar que a relac ao e logicamente equivalente a, escrito e uma


relacao de equivalencia sobre o conjunto de todas as proposic oes que podem ser construdas
de proposic oes elementares.
82 CAP

ITULO 4. L

OGICA
Leis da algebra da logica ou calculo proposional
As leis dadas abaixo sao, por hipotese, corretas, podendo ser usadas no raciocnio. Es-
sas leis sao consistentes com as denic oes das tabelas de verdade dos conectivos, dadas
anteriormente.
Quando aplicamos essas leis, podemos substituir proposicoes arbitrarias pelas letras
p, q, r. Um logico diria que cada lei e um esquema cobrindo innitas instancias.
Leis da negacao
(a) p p (b) t f (c) f t.
Leis comutativas
(a) p q q p (b) p q q p
Leis associativas
(a) p (q r) (p q) r (b) (p q) r p (q r)
Leis distributivas
(a) p (q r) (p q) (q r) (b) p (q r) (p q) (p r)
Leis de De Morgan
(a) (p q) p q (p q) p q
Lei do terceiro excludo p p t
Lei da contradicao p p f
Lei da implicacao p q (p q)
Lei da equivalencia (p q) (p q) (q p)
Leis da simplicacao do ou
(a) p p p (b) p t t (c) p f p (d) p (p q) p
Leis da simplicacao do e
(a) p p p (b) p t p (c) p f f (d) p (p q) p
Lei da identidade p p.
Algumas das leis acima podem ser provadas a partir de outras no conjunto.

E possvel
achar um conjunto mnimo de leis logicas a partir do qual todas as outras possam ser
derivadas. No entanto, para o nosso proposito isto nao e relevante. As leis acima foram
selecionadas como uma colec ao razoavel sobre a qual basearemos nossos argumentos.
Poderamos apresentar mais leis, entretanto nao queremos alongar tanto esse conjunto ao
ponto de se tornar muito tedioso para futuras referencias.
Regras para a substituicao e a transitividade
Essas regras mostram como podemos inferir novas proposic oes.
regra da substituicao. Esta regra nos permite substituir qualquer proposic ao logi-
camente equivalente para obter um novo teorema.
4.2. RACIOCINANDO COM HIP

OTESES L

OGICAS 83
Exemplo (a): Prove que (x y) (y x) (a condicional e logicamente
equivalente `a contrapositiva).
Prova: (x y) x y (implicacao)
y x (axioma comutativo)
y x (negacao)
(y x) (implicacao)
Exemplo (b): Mostre que
((p q) p) q
e uma tautologia.
Prova: ((p q) p) q
((p ) p) q (implicacao)
((p q) (p) q) (De Morgan)
(p q) (p q) (associativo)
(p q) (p q) (implicacao)
t (terceiro excludo)
O que prova que ((p q) p) q e uma tautologia.
Exemplo (c): Mostrar que p q p e uma tautologia.
Prova: (p q) p) (p q) p (implicacao)
(p q) p (De Morgan )
p (p q) (comutativo )
(p p) q (associativo)
t q (terceiro excludo)
t (simplicacao do ou)
Exemplo (d): Mostrar que p (p q) e uma tautologia.
Prova: (p (p q)) p (p q) (implicacao)
(p p) q (associativa)
t q (terceiro excludo)
t (simplicacao do ou)
Portanto, p (p q) e uma tautologia.
Os exemplos 3 e 4 sugerem outra relacao entre proposic oes compostas. Onde p q
for uma tautologia, podemos dizer p implica logicamente q. Alguns autores usam o
smbolo para signicar implica logicamente.
A relac ao implica logicamente e transitiva mas nao e simetrica.
Regra da transitividade Se p q e q r entao p r.
84 CAP

ITULO 4. L

OGICA
Exemplo: Prove que p q p q.
Prova: p q p (exemplo 3)
p p q (exemplo 4)
p q p q (regra da trasitividade)
A equivalencia logica
proposic ao(1) proposicao(2)
pode ser vista como
(proposic ao(1)proposic ao(2))(proposicao(2)proposicao(1))
4.3 Predicados & Quanticadores
O calculo proposicional da logica desenvolvida ate aqui, nesta parte, e uma teoria de
logica autocontida, mas com suas limitac oes.
Observamos no incio deste assunto que uma proposicao p deve ser, sem ambiguidade,
verdadeira ou falsa. Mas, com frequencia precisamos considerar assertivas cujos valores
de verdade variam. Por exemplo, qando explicamos o condicional escolhemos p como
sendo Eu moro em Braslia.
Podemos tratar esta situac ao introduzindo funcoes cujos contradominos sao valores
de verdade. Uma func ao com essa caracterstica e chamada um predicado. No exemplo
acima, a variavel Eu foi escolhida dentre um conjunto de pessoas. Cada pessoa e
mapeiada em t se ela mora em Braslia ou f se nao for o caso.
Calculo de predicados
Denicao 25 (Predicado) Um predicado e uma expressao envolvendo uma ou mais va-
riaveis denidas sobre algum domnio. A substituicao da variavel(veis) por um valor(ou
valores) particular do domnio produz uma proposicao que e verdadeira ou falsa. Portanto,
um predicado dene uma funcao do domnio no conjunto booleano t, f.
Exemplo 77 P(n) (n e primo) e um predicado sobre os n umeros naturais. Observamos
que P(1) e falso, P(2) e verdadeiro, P(12) e falso, P(37) e verdadeiro.
O predicado e primo pode ser considerado como uma funcao:
P: N B
P(n) =
_
t quando n e primo
f quando n nao e primo
4.3. PREDICADOS & QUANTIFICADORES 85
Exemplo 78 Precondicoes e poscondicoes sao predicados. Por exemplo, a poscondicao
para a divisao inteira, vista anteriormente, e Q(a, b, q, r) (a = bq + r) (0 r < b).
Este predicado dene a funcao
poscondicao: N N N N B
poscondicao(a,b,q,r)=
_
t quando (a = bq +r) (0 r < b)
f caso contrario
Quanticadores
Alem da substituic ao da vari avel por um valor particular, existe outra maneira importante
de converter um predicado em uma proposicao. Para isso podemos usar o conceito de
quanticador, usado para especicar quando o predicado e verdadeiro para todo ou parte
do domnio.
Para todo n, P(n) signica que o predicado P tem valor t em todo o domnio. O
smbolo que usaremos para representar para todo e .
Para algum ou existe n, P(n) signica que o predicado tem valor t para pelo
menos um elemento do domnio. O smbolo que usaremos para representar para algum
e .
Os exemplos que seguem ilustram o uso de quanticadores, com o valor de verdade
resultante.
1. A frase 2k e par, a primeira vista, parece um predicado, mas ela realmente e uma
proposicao(t), pois sabemos que 2k e par para todos os valores do inteiro k. Em
smbolos, escrevemos
k N (2k e par),
uma proposic ao com valor de verdade t.
2. Para todos os inteiros n, 2n - 1 e mpar. Em smbolos, escrevemos
k Z (2n - 1 e mpar)
e uma proposic ao com valor de verdade t.
3. Para todos os primos p, p e mpar. Em smbolos, escrevemos
p o conjunto dos n umeros primos, (p e mpar)
86 CAP

ITULO 4. L

OGICA
Esta proposic ao tem valor f. (O n umero 2 tambem e primo.)
O quanticador pode ser restrito a um subconjunto do domnio do predicado.
4. Para todo n umero real nao nulo, seu quadrado e positivo.
Em smbolos
x R, x ,= 0(x
2
> 0)
Esta proposic ao tem valor t.
5. Se um inteiro e par entao seu quadrado e par.
Esta e, realmente, uma proposicao geral sobre todos os inteiros. Seria
mais satisfatorio incluir o quanticador explicitamente. Assim:
Para todo os inteiros n, se n e par ent ao n
2
e par.
Nesta forma esta claro que um valor falso do predicado, para um valor de
n, seria suciente para mostra a falsidade da proposicao. Entretanto, tal
contra exemplo nao pode ser encontrado como mostra a seguinte prova.
Prova: Para todos os inteiros n,
n e par implica que(n=2m) para algum inteiro m
que implica n
2
= 4m
2
, portanto n
2
e par.
6. Para todo inteiro n, se n
2
for mpar, ent ao n e mpar.
Esta proposic ao e a contrapositiva do exemplo 5.
A estrutura das proposic oes em 5. e 6. acima pode ser mais transparente se as
colocarmos na forma simb olica.
Dena P(n) como sendo o predicado n e mpar
Q(n) como sendo n
2
e par
Ent ao a proposic ao em 5. acima e
n Z(P(n) Q(n));
e a contrapositiva em 6. e
n Z(Q(n) P(n));
4.3. PREDICADOS & QUANTIFICADORES 87
Negacao de predicados quanticados
Como um predicado quanticado e uma proposic ao com um valor de verdade denitivo,
deve ser possvel nega-lo para obter o valor de verdade oposto. A estrutura simb olica da
negacao sera investigada usando um exemplo.
Para algum n umero x, x
2
e negativo. Em smbolos,
x R(x
2
< 0), que e f.
A negac ao da proposicao e:
Para todo n umero real x, x
2
e nao negativo. Em smbolos, x R(x
2
0), que e t.
Os resultados gerais sao:
(xP(x)) x(P(x))
(xQ(x)) x(Q(x))
Quanticadores para predicados com mais de uma variavel
Os resultados para a negacao podem ser estendidos para quanticadores com predicados
com mais que uma vari avel. Por exemplo:
x Ry R(x +y = 0)
que signica para todo x real existe um n umero real y tal que x + y = 0. Isto e
verdade, sendo y o negativo de x. A negac ao e:
(xy(x +y = 0)) x(y(x +y = 0) xy(x +y ,= 0)
A ordem dos quanticadores m ultiplos para predicados com mais que uma vari avel
pode alterar o signicado e o valor de verdade da proposicao. Por exemplo:
Todo n umero natural tem um sucessor. Em smbolos
n Nm N(m = n + 1)
que e uma proposicao verdadeira.
Se alterarmos a ordem dos quanticadores obteremos
m Nn N(m = n + 1)
Na linguagem comum esta expressao diz algum n umero natural tem todo n umero
natural como seu sucessor que nao e equivalente a proposicao com os quanticadores na
ordem original.
88 CAP

ITULO 4. L

OGICA
4.4 Exerccios
1. O operador nand, denotado por [, e denido por
p[q (p q)
(a) De a tabela de verdade para p[q.
(b) Mostre que p[p e logicamente equivalente a p.
(c) Achar uma formula para p q usando somente o operador nand.
(d) Achar uma formula para p q usando somente o operador nand.
2. Mostrar que p q e logicamente equivalente a p q, usando tabelas de verdade.
3. Mostre que (x y) x e uma tautologia usando tabelas de verdade.
4. As quatro proposic oes seguintes possuem o mesmo signicado quando usadas em
matematica:
se p entao q p e suciente para q
q e necessario para p p somente se q.
Reescreva cada uma dessas proposic oes seguintes de tres maneiras diferentes usando
os padraos acima:
(a) Se 9 divide n ent ao 3 divide n.
(b) x = 0 e suciente para xy = 0.
5. Achar a reversa e a contrapositiva das seguintes proposicoes.
(a) Se n e mpar ent ao n
2
e mpar.
(a) Se n e primo e maior que 2 ent ao n e mpar.
(c) Se ab = 0 ent ao a = 0 ou b = 0.
6. Mostre que (p q) (p q) q e uma tautologia.
7. Use as leis do calculo proposicional e p (p q) p para provar que p (p q) p.
8. Use as leis do calculo proposicional para provar que as seguintes proposic oes sao
tautologias.
(a) (p q) (p q).
4.4. EXERC

ICIOS 89
(b) (p (p r)) ((p q) (p r)).
(c) (p (p q)) (p q)
(d) ((p q) p) q.
(e) ((p q) p) q.
9. Prove, usando a tabela de proposic oes logicamente equivalentes, que as seguintes
proposicoes sao tautologias.
(a) p ((q r) p).
(b) (p (q r)) (q (p r)).
(c) (p (p q)) p.
(d) ((p q) p) (p q).
(e) ((p q) q) q.
10. P(n) e o predicado se 4 divide n entao 2 divide n.
Qual e o valor de verdade de
(a) P(12)? (b) P(10)? (c) nP(n)? (d) nP(n)?
11. Qual e o valor de verdade da proposic ao?
xy(y x = x y)
De a negacao dessa proposicao.
12. Escrever, usando smbolos matematicos e logicos a seguinte proposicao:
Para todo n umero real positivo x, existe um n umero natural n tal que x
e igual a 2
n
ou x esta entre 2
n
e a proxima maior potencia de 2.
Escreva a negacao da proposic ao em smbolos. Qual das proposicoes e verdadeira.
13. Neste quesito o conjunto universal e Z, isto e, n e um inteiro.
P(n) e o predicado (0 < n
2
4).
R(n) e o predicado (0 < n
3
8).
S(n) e o predicado (0 < n 2).
Dar o conjunto de valores de n que gera proposicoes verdadeiras para cada
uma das P, R, S.
Quais dos predicados sao equivalentes?
A proposicao n(R(n) P(n)) e verdadeira?
90 CAP

ITULO 4. L

OGICA
14. Use o calculo de proposic oes para simplicar cada uma das proposic oes abaixo a uma
das proposic oes f, t, p, q, p q, p q.
(a) p (q p) q (b) p q p (c) p (p q)
15. A forma normal conjuntiva tem a forma
p
0
... p
n
, onde cada p
i
tem a forma e
0
... e
m
.
Cada e
j
e t, f, ou uma proposicao elementar x ou sua negacao x.
Converter as seguintes proposic oes a sua forma normal conjuntiva:
(a) (p q) (p r) (p q) (p q)
Captulo 5
Provas
5.1 Introducao
Nesta captulo consideraremos construcoes de provas matematicas. Apos ver este assunto
o aluno deve ser capaz de completar provas em que lhe sejam dadas certas assistencia
para a estrutura da prova. Num nvel mais alto e importante aprender como selecionar
estruturas para a prova. As estruturas da prova que o aluno deve ser capaz de enteder
e usar sao: provas por casos, prova direta seguindo a analise, prova pela contrapositiva,
prova por construcao e por inducao matematica. Esta e uma forma especial de prova
usada para provar que um programa esta correto.
A prova tem sido uma parte importante da matematica desde o tempo dos gregos
antigos. Raciocinar, sem d uvida, fez parte da cultura do antigo Egito e da Babilonia, mas
nao existe evidencia de prova como signicando uma demonstracao de um argumento
de um modo p ublico, sucientemente rigorosa para suportar qualquer crtica. Num livro
chamado Os Elementos, Euclides(aproximadamente, 300 a.c.) apresentou o conceito que e,
ainda, a base de provas em matematica. Ele demonstrou que se assumirmos um pequeno
n umero de axiomas, aceitar denic oes e regras de argumentos, entao e possvel provar
uma grande quantidade de proposic oes, como consequencia das hipoteses. Entretanto, a
prova e uma das caractersca de muitas atividades, haja visto o trabalho do advogado.
Mais recentemente, tem sido adaptados alguns metodos matematicos de provas, para
a tarefa de provar corretudes de programas. Testar pacientemente um programa para
muitos conjuntos de entradas de dados, nao pode, normalmente, garantir que o programa
esteja correto para todas as entradas possveis, pois um programa util e projetado para
aceitar uma quantidade innita de entradas.

E muito mais satisfatorio provar que o
programa esteja correto, porem provalmente seja mais difcil que construir o proprio
programa. Somente poderemos provar que um programa esta correto relativamente
a sua poscondic ao. A atividade de provar que um programa esta correto e chamada
vericacao de programas.
91
92 CAP

ITULO 5. PROVAS
O esforco de provar corretudes de programas tem tido efeitos sobre o estilo de escrever
programas. Alguns autores defendem que o programa seja desenvolvido lado a lado com
sua prova.
Padroes de provas
Agora, apresentaremos uma abordagem sistematica de provas em matematica. Para o
estudante, a prova de proposic oes, geralmente, e difcil. Uma prova requer muito conhe-
cimento dos teoremas, denic oes e hipoteses na area da proposic ao, a habilidade para
selecionar uma estrategia de prova e segui-la logicamente, superando muitas diculdades
ao longo do processo da prova.

E grande a satisfac ao ao completar uma prova e convencer
a audiencia de que a proposic ao esta, sem d uvida, correta.
A obordagem que seguiremos, nesta parte, e motivada no fato de que a arte de construir
uma prova e analoga a de construir um bom programa, em pelo menos dois pontos de
vistas. Ambos devem estar corretos e serem entendidos pelos outros.
Examinemos o exemplo seguinte para ilustrar um metodo bastante usado de provas. As
proposic oes foram escolhidas sobre os n umeros naturais, pois e uma parte da matematica
bem conhecida. O nosso objetivo e concentrar a atenc ao no metodo.
Deve estar claro de antem ao que os metodos de que estamos falando nao sao receitas
ou procedimentos que inevitavelmente gerara uma prova correta, para cada proposic ao.
Os metodos sao abordagens que provalvemente levam ao sucesso, mas requerem uma
variedade de pequenas variacoes para se adequar as proposic oes particulares. Para superar
essas diculdades precisamos de muito exerccio para obter experiencia.
Sabemos que uma boa ideia pode nao ser bem sucedida e por isso devemos estar
preparados para tentar um outro metodo.
Quando escrevemos uma prova para uma proposic ao devemos ter em mente que esta-
mos tentando convencer alguma audiencia de que a proposicao e verdadeira. Portanto,
nossa prova deve estar correta e clara. O ideal seria esbocar uma prova e ent ao mostra-la
a alguem, e nalmente elabora-la para atingir a clareza. Uma prova pode ser difcil de ler
devido a mal escolha de notac ao ou a diculdade da estrutura. Esta parte da matematica
provavelmente se benecia mais do que qualquer outra da iterac ao entre as pessoas.
As fases pelas quais passamos na construcao de uma prova sao:
1. A montagem dos fatos que provalmente serao uteis na prova;
2. A escolha de uma estrategia de prova ou metodo; e
3. a A preparacao da prova para uma audiencia
Nesta sec ao nos concentraremos na segunda fase. Uma das caractersticas das provas,
como sao apresentadas nos textos, e a nao justicativa da razao porque o autor optou
5.1. INTRODUC

AO 93
por uma abordagem particular. Quando lemos uma prova quase sempre nos perguntamos
podemos ver que e verdade, mas como o autor descobriu essa maneira?
Para ajudar na abordagem desse problema, colocaremos coment arios em colchetes
para sugerir o que os autores estariam, provavelmente, pensando no momento da prova.
Exemplos de provas em matematica
As provas que segue ilustram:
1. provas por casos;
2. provas por contraposivas;
3. provas diretas; e
4. provas por contradi cao.
Proposicao 1 Para todo inteiro n, n
3
+ 2n e divisvel por 3.
[Primeiras ideias: tente obter 3 como fator. Nao podendo conseguindo, fatorize a
expressao de qualquer maneira: n
3
+ 2n = n(n
2
+ 2). A proposicao seria verdadeira se
n fosse um m ultiplo de 3. Mas, que tal outras possibilidades? Tentemos uma prova por
casos.]
Prova: n
3
+ 2n = n(n
2
+ 2)
Caso 1: n = 3k para algum k.
n
3
+ 2n = 3k((3k)
2
+ 2) que e divisvel por 3.
Caso 2: n = 3k + 1, para algum k.
n(n
2
+ 2) = (3k + 1)((3k + 1)
2
+ 2)
Analisemos o segundo fator, pois o primeiro nao e divisvel por 3.
(3k + 1)
2
+ 2 = 9k
2
+ 6k + 1 + 2
= 3(3k
2
+ 2k + 1) (divisvel por 3).
Caso 3: n = 3k + 2, para algum k.
Novamente olhando para o segundo fator, temos
94 CAP

ITULO 5. PROVAS
n
2
+ 2 = (3k + 2)
2
+ 2
= 9k
2
+ 12k + 4 + 2
= 9k
2
+ 12k + 6
= 3(3k
2
+ 4k + 2) (e divisvel por 3.)
Em cada caso, n
2
+ 2n e divisvel por 3. Os tres casos cobrem todas as
possibilidades, pois cada inteiro cai em um desses tres casos.
Portanto, a proposic ao e verdadeira para todo inteiro n.
Proposicao 2 Se n
2
for par entao n tambem e par
[Primeira ideias: Como n
2
e par podemos dizer que n
2
= 2k, para algum k. Tentemos
a contrapositiva.
Prova:
Vamos provar se n for mpar, ent ao n
2
e mpar.
Como n e mpar temos n = 2k + 1, para algum k.
Portanto, n
2
= (2k + 1)(2k + 1) = 4k
2
+ 4k + 1 que e mpar.
A proposic ao sob aspas e verdadeira. Como ela e a contrapositiva da propo-
sic ao que pretendemos provar. Podemos armar que, se n
2
for par ent ao n e
par.
Observe que este resultado e muito geral. Seria correto colocar o quanticador para
todo inteiro n na proposic ao.
Proposicao 3 Se p > 3 e p e primo, entao p
2
1 e divisvel por 3.
[Temos duas informacoes. Talvez possamos comecar com essas informacoes e
concluir o resultado, p
2
1 e divisvel por 3, fazendo uma prova direta. A
estrategia sera bem sucedida, desde que tenhamos em vista a conclusao.]
[Analise: Tentaremos argumentar avancando a partir das informacoes que
possuimos, e recuando a partir do que pretendemos mostrar, na esperanca de
que os dois argumentos se completarao, produzindo o resultado.
dado: a ser provado:
proposicao: p > 3 e p e primo p
2
1 e divisvel por 3
precondicoes: p ,= 2, p ,= 3 fatorar
p
2
1 = (p 1)(p + 1)
Agora observe que (p 1), p e (p + 1) sao inteiros consecutivos.]
5.1. INTRODUC

AO 95
Prova:
Um dos tres n umeros (p 1), p, (p + 1) e divisvel por 3, pois eles sao conse-
cutivos.
Mas esse n umero nao pode ser p porque p e primo maior que 3. Logo, (p
1)(p + 1) e divisvel por 3.
Portanto, p
2
1 e divisvl por 3.
Proposicao 4 Existem mais n umeros primos que n umeros naturais. Por isso podemos
dizer que a quantidade de primos e innita.
A prova classica e devida a Euclides(aproximadamente, 300 a.c.). O metodo e chamado
prova por contradicao.
Prova:
Suponha que a proposicao e falsa e portanto so existe um n umero nito, k, de
primos.
Sejam os primos p
1
, p
2
, ..., p
k
, onde k e um inteiro positivo.
Considere o n umero n = p
1
p
2
... p
k
+ 1. n e maior que qualquer primo
conhecido, pois ele nao e primo. Logo, esse n umero deve ser composto.
Portanto, podemos expressar n como um produto de primos.
Mas, nenhum dos primos conhecidos divide n. Cada um deles deixa resto 1.
Logo, deve existir algum primo alem dos primos conhecidos.
Contradicao. A hipotese feita no incio da prova deve estar errada, e assim
o n umero de primos nao e nito.
Inducao matematica
A induc ao matematica e um estilo de prova aplicavel a predicados, sobre os n umeros
naturais. Algoritmos com uma estrutura de laco, em geral, estao associados a predicados
sobre um contador de laco, que e um n umero natural. Bastava esta razao para que a
inducao matematica fosse um metodo de prova muito importante em computac ao.
O princpio da inducao matematica
Em palavras.
96 CAP

ITULO 5. PROVAS
Suponhamos um predicado denido sobre os n umeros naturais. Suponha que
o predicado e verdadeiro para algum valor(b asico) da vari avel. E suponha que
se o predicado for verdadeiro para qualquer valor da vari avel, ele tambem sera
verdadeiro para esse valor mais 1. Entao o predicado e verdadeiro para todos
os valores da vari avel, a partir do valor basico.
Em smbolos.
Seja P(n) um predicado denido sobre o inteiro n.
Suponha que P(a) e verdadeiro para algum inteiro a, e suponha que (P(k)
P(k +1)) e verdadeiro para todo inteiro k a. Entao P(n) e verdadeiro para
todo n a.

E aceito que o princpio da inducao matematica se verica para predicados sobre os


inteiros. O princpio nao pode se vercar para n umeros reais, pois nao existe a noc ao do
proximo n umero real, apos o n umero real k. O princpio pode ser aplicado a qualquer
sistema em que cada vari avel tenha um proximo valor, e existe um primeiro valor denido.
A seguir apresentamos algumas proposicoes que podem ser provadas usando inducao
matematica.
1. O n umero n
3
+ 2n e divisvel por 3, para todos os inteiros n 1.
2. Uma maquina automatica deve ser programada para entregar um dado valor de
selos, a pedido. A maquina contem selos de 3-centavos e 5-centavos. Desde que o
estoque nao se esgote, a maquina pode entregar qualquer valor maior ou igual que
8-centavos.
3. Para todos os inteiros n 1, 3
n
1 + 2n.
4. Para todos os inteiros n > 6, n! > 3
n
.
5. Para todos os inteiros n > 0,
a +ar +ar
2
+... +ar
n1
=
a(r
n
1)
r 1
, para r ,= 1.
6. Todo inteiro maior que 1 pode ser escrito como um produto de primos.
Uma prova por inducao matematica deve provar duas proposicoes.
1. Basico: O predicado e verdadeiro para algum valor basico da vari avel.
5.1. INTRODUC

AO 97
2. Indutivo: Para todos os valores da vari avel a partir do valor basico, se o predicado
for verdadeiro para um valor da variavel ent ao ele tambem sera verdadeiro para o
pr oximo valor da variavel.
Os exemplos abaixo foram escolhidos para ilustrar o metodo de prova por induc ao e
algumas de suas variacoes, em algumas das aplicacoes bem conhecidas.

E possvel, pelo
menos para algumas das proposic oes, se obter provas por metodos diferentes.
Exemplos de provas por inducao matematica
Proposicao 5 O n umero n
3
+ 2n e divisvel por 3, para todos os inteiros n 1.
Dena o predicado P(n) como sendo (n
3
+ 2n e divisvel por 3.)
Prova: Basica Mostrar que P(1) e verdadeira.
1
3
+ 2 1 = 1 + 2 = 3, e 3 e divisvel por 3. Portanto, P(1) e verdadeiro.
indutivo: Mostrar que P(k) P(k + 1) e verdadeiro para todos os inteiros
1.
Assuma que P(k) e verdadeiro. Isto e, k
3
+ 2k e divisvel por 3.
1
Agora
tentaremos mostrar que n
3
+ 2n e divisvel por 3, para o proximo valor de n,
notadamente n = k + 1.
(k + 1)
3
+ 2(k + 1) = k
3
+ 3k
2
+ 3k + 1 + 2k + 2
= (k
3
+ 2k) + 3k
2
+ 3k + 3
Mas, k
3
+ 2k e divisvel por 3, pela hipotese de que P(k) e verdadeiro.
Portanto, k
3
+ 2k = 3t, e
(k + 1)
3
+ 2(k + 1) = 3(t +k
2
+k + 1)
que e divisvel por 3. Portanto, P(k+1) e verdadeiro.
Mostramos que P(n) P(n + 1) e verdadeiro para uma particular constante n = k.
Entretanto, o argumento e sucientemente geral para permitirmos deduzir que, para k
1, (P(k) P(k + 1) e verdadeiro.
Pelo princpio da induc ao matematica n
3
+ 2n e divisvel por 3, para n 1.
Em outras palavras, mostramos que se a proposicao for verdadeira para algum valor
de n ela tambem e verdadeira para o pr oximo valor de n. Mas a proposicao e verdadeira
para n = 1. Portanto, ela e verdadeira para todos os valores de n a partir de 1.
1
O uso de k tem como signicado o fato de que estamos assumindo a proposicao para somente um
valor de n. Neste ponto do argumento k e constante.
98 CAP

ITULO 5. PROVAS
Proposicao 6 Uma maquina automatica de vendas foi programada para entregar, a
pedido, selos. A maquina mantem estoques de selos de 3-centavos e 5-centavos. Desde
que o estoque nao se esgote, a maquina pode entregar exatamente qualquer valor maior
ou igual a 8-centavos.
Dena o predicado P(n) como sendo postagem de n-centavos pode ser feito usando
selos de tres e cinco centavos
Prova:
Basica: Mostrar que P(8) e verdadeiro.
P(8) e verdadeiro porque 8-centavos pode ser obtido usando selos de 3-centavos
e 8-centavos.
Indutiva: Mostrar que (P(k) P(k + 1)) e verdadeiro para todo inteiro
k 8.
Assuma que P(k) e verdadeiro. Isto e, k-centavos pode ser obtido com selos
de 3-centavos e 5-centavos, para algum k 8.
2
Caso 1: Se existem selos de 5-centavos fazendo parte dos k-centavos, substitua-
o por dois selos de 3-centavos para obter o valor de (k+1)-centavos.
Caso 2: Se nao existe selos de 5-centavos no conjunto compondo k-centavos
ent ao deve existir no mnimo selos de 3-centavos para satisfazer a condic ao
k 8. Substitua tres selos de 3-centavos por dois de 5-centavos perfazendo o
valor (k+1)-centavos.
Portanto, P(k) P(k + 1) e verdadeiro para k, um valor particular de n.
Entretanto, o argumento se verica para todo k 8.
Pelo princpio da induc ao matematica, a postagem de n-centavos de selos pode
ser efetuada com selos de 3-centavos e 5-centavos, para todo valor de n 8.
Esta proposic ao seria muito difcil de provar com uma prova direta. Alem disso, a
prova indutiva sugere um procedimento para programar a maquina de vendas.
Proposicao 7 Para todos os inteiros n 1, 3
n
1 + 2n.
Dena o predicado P(n) como sendo (3
n
1 + 2n).
Prova: Basica:
2
Neste ponto k e um valor constante particular para n.
5.1. INTRODUC

AO 99
Mostrar que P(1) e verdadeiro.
3
1
1 + 2 1, portanto P(1) e verdadeiro.
Indutiva: Mostrar que (P(k) P(k + 1) e verdadeiro para todo inteiro
k 1.
Assuma que P(k) e verdadeiro. Da hipotese temos a esperanca de deduzir que
3
k+1
1 + 2(k + 1).
3
k
1 + 2k (hipotese de que P(k))
3 3
k
3(1 + 2k) (multiplicando por 3)
3
k+1
1 + 2k + 2 + 4k (algebra)
1 + 2k + 2 ( pois k > 0)
Portanto, 3
k+1
1 + 2(k + 1)
Isto e, mostramos que (P(k) P(k + 1) e verdadeiro para k um valor parti-
cular de n.
O argumento se verica para k 1. Pelo princpio da inducao matematica, a
proposicao e verdadeira.
Proposicao 8 Para todo inteiro n > 6, n! > 3
n
.
Dena o predicado p(n) como sendo (n! > 3
n
).
Prova:
Basica: Mostrar que P(7) e verdadeiro.
7! = 7 6 5 4 3 2 1 = 5040 e 3
7
= 2187
Portanto, 7! > 3
7
e P(7) e verdadeira.
Indutivo: Mostrar que P(k) P(k + 1) e verdadeiro para todo inteiro
k 7.
Assuma que P(k) e verdadeiro. Da hipotese esperamos deduzir que (k + 1)! >
3
k+1
.
(k + 1)! = (k + 1)k!
> (k + 1)3
k
(assumindo P(k))
> 3 3
k
(desde que k 7)
Portanto, (k + 1)! > 3
k+1
Mostramos que P(k) P(k + 1) e verdadeiro para k um valor particular de
n. Entretanto, o argumento e geral, vericando para todos os inteiros k 7.
Pelo princpio da inducao matematica n! > 3
n
, para todos os inteiros n > 6.
100 CAP

ITULO 5. PROVAS
Proposicao 9 Para todo inteiro n > 0,
a +ar +ar
2
+... +ar
n1
=
a(r
n
1)
r 1
parar ,= 1
Dena o predicado P(n) como sendo (A soma dos primeiros n termos e
a +ar +ar
2
+... +ar
n1
=
a(r
n
1)
r 1
, r ,= 1.)
A parte da serie que e o predicado usa n de duas maneiras. A formula para o ultimo
termo e uma funcao de n. Alem disso, n conta o n umero de termos na serie. Portanto,
P(n+1) tera uma nova formula para o ultimo termo da serie e assim um termo a mais
nela.
Prova:
A precondicao e r ,= 1.
Basico: Mostrar que P(1) e verdadeiro.
Para n=1 a serie tem somente um termo, a. A formula para a soma da serie
e
a(r
1
1)
r 1
que e tambem a. Portanto P(1) e verdadeiro.
Indutiva: Mostrar que P(k) P(k + 1) e verdadeiro para todo k 1.
Assuma que P(k) e verdadeiro. Isto e, suponha que a formula fornece a soma
correta para uma serie com k termos(k constante.)
Adicione o proximo termo na serie, notadamente ar
k
, em ambos os lados da
equacao para a soma de k termos assumido.
Entao, a soma de k+1 termos e:
a +ar +ar
2
+... +ar
r1
=
a(r
k
1)
r1
+ar
k
=
ar
k
a
r1
+
ar
k
r1
=
ar
k
a+ar
k+1
ar
k
r1
=
a(r
k+1
1)
r1
5.1. INTRODUC

AO 101
Isto prova que P(k+1) segue da hipotese de que P(k) e verdadeiro.
Isto e, P(n) P(n+1) e verdadeiro para o valor particular n = k. Entretanto,
o argumento e sucientemente geral podermos deduzir a verdade para todo
k 1. Pelo princpio da induc ao matematica a proposic ao esta provada.
Proposicao 10 Todo inteiro maior que 1 pode ser escrito como um produto de primos.
3
Um unico primo e visto como o produto de um primo.
Dena P(n) como sendo (cada inteiro de 2 a n pode ser escrito como um produto de
um ou mais primos).
Prova:
Etapa basica. Mostrar que P(2) e verdadeiro.
O inteiro 2 e primo. Portanto, P(2) e verdaeiro.
Etapa Indutiva. Mostrar que P(k) P(k+1) e verdadeiro para todo k 2.
Assuma que p(k) e verdade, (k constante).
Caso 1: Suponha que k + 1 e primo. Isto e, k + 1 e o produto de um primo
e P(k+1) e verdade.
Caso 2: Suponha que k+1 nao e primo. Entao, k+1 e composto e, portanto,
pode ser escrito como um produto mn, onde ambos os fatores pertencem ao
conjunto 2,3,...,k.
A hipotese de que P(k) e verdadeiro signica que ambos m e n sao produtos
de primos.
Portanto, o mesmo e verdadeiro para k+1. Logo, P(k+1) e verdadeiro. Mos-
tramos que P(k) P(k + 1) e verdadeiro para uma constante particular
k. Agora, este argumento e sucientemente geral para podermos armar que
P(k) P(k + 1) e verdadeiro para k 2.
Logo, pelo princpio da inducao matematica, todo inteiro maior que 1 pode ser
escrito como um produto de primos.
Em palavras, mostramos que se a proposicao for verdadeira para algum valor de n ela
tambem e verdadeira para o proximo maior valor de n. Mas, a proposic ao e verdadeira
para n=2. Consequentemente, ela e verdadeira para todos os valores de n a partir de 2.
3
A assertiva da proposicao contem um abuso do termo produto.
102 CAP

ITULO 5. PROVAS
Indu cao e boa ordem
Tornando transparente a logica subjacente do raciocnio matematico, particularmente
da induc ao matematica, podera nos ajudar a expressar o argumento usando regras de
inferencia ou regras de deduc ao.
Uma regra de inferencia e um esquema logico usando smbolos p, q, ... que podem ser
substitudos por proposicoes particulares para obter uma instancia (isto e, uma aplicac ao)
da regra. Vamos considerar um exemplo de uma regra de inferencia.
O esquema
p
p q
q
e lido
se soubermos(ou aceitarmos ou nos forem dados) que a proposic ao(p) e verdadeira
e soubermos que a proposic ao(se p, entao q) e verdadeira, ent ao poderemos concluir que
(q) e verdadeira.
Esta regra de inferencia e chamada modus ponens.
Exemplo 79 O que segue e uma instancia da regra modus ponens.
1. x e par e x e primo.
2. se(x e par e x e primo) ent ao (x=2)
Portanto, x = 2.
O esquema mostra a estrutura logica do argumento.
A linha 1 e a proposicao p do esquema, no caso uma proposicao composta que assu-
mimos ser verdadeira ou dada.
A linha 2 e a proposic ao p q, onde q e o predicado x = 2, e a proposicao p q e
suposta vedadeira.
A conclusao do modus ponens e que q segue, resultando x = 2.
O princpio da inducao matematica: A forma fraca
Expresso como uma regra de inferencia, o princpio da induc ao matematica e o esquema
(proposic ao basica) P(0)
(proposic ao indutiva) para todo k 0, (P(k) P(k + 1))
para todo k 0, P(n)
Este princpio pode ser visto como uma aplicacao repetida do modus ponens.
Portanto (1) P(0) (basico)
(2) P(0) P(1) (indutivo, k=0)
(3) P(1) (linhas 1, 2, modus ponens)
(4) P(1) P(2) (indutivo, k=1)
(5) P(2) (linhas 3,4, modus ponens)
5.1. INTRODUC

AO 103
e assim continua uma innidade de aplicac oes de modus ponens.
Isto e bastante plausvel. Entretanto, alguns matematicos preferem fazer das innitas
aplicacoes uma hipotese separada constituindo o princpio da inducao matematica.
Entretanto, podemos colocar a seguinte questao. Existe uma maneira de provar
que a induc ao matematica esta correta ou devemos aceita-la como uma hipotese basica.
Colocando a questao em outras palavras, a palavra princpio sgnica teorema ou
hipotese basica? A resposta a primeira questao e que podemos provar que a induc ao
matematica esta correta se assumirmos que os n umeros naturais estao bem ordenados.
Igualmente, podemos provar que os n umeros naturais estao bem ordenados se assumirmos
que o princpio da induc ao matematica esta correto. A situacao e um pouco complicada
pelo fato de que o princpio da induc ao matematica se apresenta de varias formas. Essas
formas existem para simplicar a aplicacao do princpio, embora eles sejam equivalentes
em logica.
O princpio da inducao matematica: Forma forte
Expresso como uma regra de inferencia a regra da inducao matematica e o esquema
(basico) P(0)
(indutivo) para todo k 1, (P(0) P(1) ... P(k) P(k + 1))
para todo n 0, P(n)
Sao possveis outras variac oes. A proposic ao basica poderia ser P(0)P(1)...P(m).
Neste caso a proposicao indutiva seria reduzida a para todo k m, (P(k m) P(k
m+ 1) ... P(k) P(k + 1)). Outra varia cao seria comecar a induc ao em 1 ou em
algum outro n umero em de vez de 0.
Exemplo 80 Todo n umero natural maior que 1 pode ser fatorado como um produto de
primos, onde se entende que um primo e visto como um produto de um primo.
Este exemplo foi provado pela forma fraca da inducao matematica. A prova abaixo
usa um predicado ligeiramente diferente e a forma forte da induc ao matematica.
Prova: Dena P(n) como sendo o predicado
(n e o produto de fatores primos)
Basico: P(2) e verdade porque 2 e primo.
Indutivo: Prove (P(2) P(3) ... Pk) P(k + 1)) e verdadeiro para a
constante k 2.
Caso 1: k + 1 e primo. Portanto P(k+1) e verdadeiro.
104 CAP

ITULO 5. PROVAS
Caso 2: k + 1 e composto, entao k + 1 = mn, para algum inteiro positivo m
e n na sequencia
2, 3, 4, ..., k
Pela hipotese indutiva forte, P(m) e verdadeiro e P(n) e verdadeiro. Portanto,
k + 1 = (um produto de primos)(um produto de primos)
= (um produto de primos)
Portanto, P(k+1) e verdadeiro para cada k maior ou igual que 2. Portanto, pela forma
forte da induc ao matematica, todo n umero natural maior que 1 pode ser fatorado como
um produto de primos.
Exemplo 81 A sequencia
x
0
, x
1
, x
2
, ..., x
n
, ...
e denida pela formula x
n
= 3x
n1
2x
n2
, para todo n 2 e as condicoes iniciais
x
0
= 0 e x
1
= 1.
Provar que x
n
= 2
n
1.
Inducao informal. A tabela seguinte mostra que a formula esta correta, para n =
0, 1, 2, 3, 4. Mas esta especie de inducao e como um experimento cientca, nao existe a
garantia de que a formula esta correta para todo n.
n x
n
2
n
1 a formula esta correta
0 0 1 1 t
1 1 2 1 t
2 3 1 2 0 = 3 4 1 t
3 3 3 2 1 = 7 8 1 t
4 4 7 2 3 = 15 16 1 t
Prova por inducao matematica. Dena P(n) pelo predicado
(x
n
= 2
n
1)
5.1. INTRODUC

AO 105
P(0) e verdadeiro, linha 1 da tabela acima.
P(1) e verdadeiro, linha 2 da tabela acima.
Portanto, a proposic ao basica P(0) P(1) e verdaeira.
Assuma que P(k 1) P(k) e verdadeira para a constante k 1.
Ent ao, x
k1
= 2
k1
1 e x
k
= 2
k
1.
Portanto, x
k+1
= 3x
k
2x
k1
(dado)
= 3(2
k
1) 2(2
k1
1) (hipotese)
= 3 2
k
3 2 2
k1
+ 2
= 3 2
k
2
k
1
= 2 2
k
1
= 2
k+1
1
Portanto, P(k+1) segue, e a proposicao indutiva se verica para todo n umero
natural n. Provamos que x
n
= 2
n
1, para todo n 0.

E possvel mostrar que qualquer proposic ao que possa ser provada pela inducao forte,
pode tambem ser provada pela induc ao fraca, usando um predicado modicado. Tambem,
que qualquer proposicao que possa ser provada pela inducao fraca pode ser provada pela
inducao forte, desde que as hipoteses necessaria na forma forte inclua aquelas da forma
fraca. Na proxima sec ao provaremos a equivalencia entre a induc ao matematica na forma
fraca e na forma forte. Mostraremos, tambem, que se um conjunto for bem ordenado
entao a inducao matematica sera um metodo satisfatorio de prova nesse conjunto. Alem
disso, se a inducao for valida o conjunto deve ser bem ordenado.
Boa ordem
No teorema que segue mostraremos que o princpio da boa ordem garante que cada uma
das formas da induc ao matematica esta correta e que qualquer um desses tres princpios
pode ser tomado como a hipotese basica, a partir da qual as outras podem ser provadas.
Teorema 6 Se uma proposicao puder ser provada na suposicao de qualquer um dos
tres princpios dados abaixo, entao ela pode ser provada usando qualquer um dos outro
princpios.
1. A forma forte do princpio da induc ao matematica.
2. A forma fraca do princpio da induc ao matematica.
3. Os n umeros naturais satisfaz o princpio da boa ordem.
106 CAP

ITULO 5. PROVAS
A estrutura da prova desse teorema consiste em mostrar que:
(1) Se assumirmos a forma fraca podemos deduzir a forma forte.
(2) Se assumirmos a forma forte podemos provar a propriedade da boa ordem.
(3) Se assumirmos a propriedade da boa ordem podemos provar a forma fraca.
Prova(1): Assuma a forma fraca.
A induc ao matematica forte segue do esquema (1) abaixo:
1. P(0)
2. P(0) P(1) ... P(k) P(k + 1), ; k 1
Portanto, S(n) para todo n
Dena o novo predicado S(k) = P(0) P(1) ... P(k)
Ent ao S(0) = P(0) e o esquema (1) acima pode ser substitudo por
1. S(0)
2. S(k) S(k + 1) para uma constante k 0
Portanto, S(n) para todo n.
e isto e o esquema para a inducao fraca, considerado verdadeiro nesta prova.
Prova(2): Assuma a forma forte da induc ao matematica.
Nosso objetivo e provar que os n umeros naturais sao bem ordenados.
O princpio da boa ordem para os n umeros naturais estabelece que todo sub-
conjunto nao vazio de N tem o menor elemento. Provaremos a contrapositiva
se A e um subconjunto de N que possui menor elemento, ent ao A e o conjunto
vazio.
Seja A um subconjunto de N que nao possui menor elemento.
Seja P(n) o predicado (n pertence a A

, o complemento de A.).
(Basico). O n umero 0 nao esta em A, caso contrario ele seria o menor elemento
de A.
Portanto, 0 pertence a A

e P(0) e verdadeiro.
(Indutivo). Suponha que P(0) P(1) ... P(k) e verdadeiro.
Ent ao, 0, 1, 2, ..., k pertence a A

, o complemento de A.
Agora considere k + 1. Se k + 1 estivesse em A, entao ele seria o menor
elemento de A.
5.2. EXERC

ICIOS 107
Mas A nao possui menor elemento. Portanto, k + 1 nao esta em A.
Portanto, P(k+1) e verdadeiro, e pela forma forte da inducao matematica
segue que P(n) e verdadeira para todos os n umeros naturais. Portanto, os
n umeros naturais sao bem ordenados.
Prova(3): Assuma:
1. os n umeros naturais sao bem ordenados.
2. P(0) e verdadeiro.
3. P(k) P(k + 1) para todo k 0.
Pretendemos mostrar que P(n) e verdadeiro para todo n 0.
Seja F o conjunto dos n umeros naturais t sobre os quais o predicado P(t) e
falso. Esperamos mostrar que F e, de fato, o conjunto vazio.
F = t N[P(t) = f
Se F ,= , ent ao F tem o menor elemento m pelo princpio da boa ordem e
P(m) e falso.
Agora, seja m ,= 0, porque P(0) e verdadeiro de (2).
Portanto, m 1 e m1 e um n umero natural.
Agora, m1 nao esta em F porque ele e menor do que o menor elemento de
F.
Portanto, P(m-1) e verdadeiro. Por (3) P(m 1) P((m 1) + 1) e
verdadeiro.
Logo, P(m) e verdadeiro.
A contradicao resultou da hipotese de que F ,= .
Logo F e o conjunto vazio e a proposicao esta provada.
Isto completa a prova de que os tres princpios sao proposic oes equivalentes, sobre os
n umeros naturais.
5.2 Exerccios
1. Prove por casos.
Para todos os inteiros n, n(n + 1)(n + 2), e divisvel por 3
2. Prove, usando a contrapositiva.
Para todos os inteiros m, n se mn for mpar entao m e impar e n e mpar.
108 CAP

ITULO 5. PROVAS
3. Prove pelo metodo direto.
para todos os inteiros n 0, n
3
n e divisvel por 3.
4. Prove por contradic ao.
para todos os inteiros positivos a, n, c, se ab = n e a <

n, entao b >

n.
5. Prove por induc ao matematica.
para todos os inteiros n 3, n
2
> 2n + 1.
Sugestoes:
(1) Caso i: n = 3k + i - 1, para i = 1, 2, 3.
Prove se m e par ou n e par ent ao ma e par.
Fatorize n
3
n.
Assuma que a proposic ao e falsa. Assuma ab = n e a <

n e b

n
P(n) (n
2
> 2n + 1). P(3) e t. Mostre que P(k) P(k + 1), para todo k 3.
6. Prove que o seguinte algoritmo esta correto, relativo a sua poscondic ao. (Assuma
que a precondic ao e satisfeita. Adicione uma assertiva sobre o valor de cada vari avel:
a, b, temp apos cada linha do algoritmo e compare a ultima assertiva com Q).
O algoritmo troca os valores de a e b.
Entradas: Inteiros a, b.
Precondicoes: P (a = X, b = Y ).
4
Sadas: Inteiros a, b.
Poscondic oes: Q (a = Y, b = X).
Metodo:
_
_
_
1.temp b
2.b a
3.a temp
7. Seja p(n) o predicado (5
n
1 + 4n).
(a) Escrever p(1). p(1) e verdadeiro?
(b) Escrever p(k).
(c) Escrever p(k+1).
5.2. EXERC

ICIOS 109
(d) Prove que para todo k 1, se p(k) e verdadeiro entao p(k+1) tambem e.
8. Seja o inteiro n representado na base 10 pela cadeis de dgitos abc.
(a) De o conjunto dos valores possveis para cada a, b, c.
(b) De a expansao literal de n.
(c) Prove que se b = a + c, entao n e divisvel por 11.
(d) A reversa da proposicao em (c) e verdadeiro?
(e) Construa uma proposicao mais geral para (c).
9. Prove que para todos os inteiros n 4, n! > 2
n
.
10. Prova que para todos os inteiros n 5, 2
n
> n
2
.
11. A soma dos n primeiros termos de uma serie geometrica cujo primeiro e a e cuja
diferenca comum e d e denido por S
n
.
S
n
= a(a +d) + (a + 2d) +... + (a + (n 1)d)
Prove que S
n
=
n
2
[2a + (n 1)d].
12. A sequencia S
n
e denida por
S
n
=
_
2S
n1
+ 1 para todo n 1,
0 para n = 0
Prove que S
n
= 2
n
1.
13. Prove que para todos os n umeros naturais n, n
2
2 nao e divisvel por 3.
14. Seja P(n) o predicado (n
2
+n + 1 e par).
Prove que P(k) P(k + 1) para todos os inteiros positivos k. Para qual valor(se
existir) de n P(n) e verdadeiro?
15. Prove que para todos n 0,
2(1)
n
+ (1)
n+1
= (1)
n
16. Prove por induc ao matematica que n
2
n + 1, para todos os inteiros n 2.
17. Prove por induc ao matematica que uma postagem maior ou igual que dois centavos,
pode ser efetuada usando selos de exatamente 2- e 3-centavos.
110 CAP

ITULO 5. PROVAS
18. Uma maquina de venda foi especicada para fornecer somente selos de 2-centavos
e 5-centavos. Assumindo que os estoques de cada selo sao sucientemente grande,
prove que qualquer postagem de 5-centavos ou mais pode ser providenciado pela
maquina.
19. Seja o inteiro n representado na base 10 pela cadeia de dgitos abc.
Prove que se a + b + c for divisvel por 9 ent ao n e divisvel por 9.
Captulo 6
Recursao
Introducao
A recursao e muito importante em computacao. Ela pde ser usada como uma ferramenta para
pensar sobre um problema, para construir um algoritmo, para construir uma denicao ou como
ferramenta de programacao explcita. Ela pode ser uma maneira de se obter uma maquima,
em vez de um programa e ordenar diculdades. Nesta parte, analisaremos a recursao para
resolver problemas, construir algoritmos e denicoes. Usaremos as estruturas de sequencias,
listas e func oes para aplicar o pensamento recursivo. Terminado esta parte, a aluno deveria
ter aprendido o uso de formulas recursivas, como resolver relacoes de recorrencia e num nvel
mais elevado, ele deveria ter adquirido a habilidade de usar o pensamento recursivo na solucao
de problemas.
Em geral, para resolver um problema em computac ao dividimo-lo em problemas mais
simples da mesma especie, resolvemos estes e compomos suas soluc oes para obter a so-
lucao do problema inicial. Se a aplicac ao(possivelmente) repetida desta estrategia de
simplicacao levar a problemas que possam ser resolvidos, entao o problema original po-
de ser resolvido. Tal abordagem e chamada recursiva. Esta abordagem tambem pode
ser aplicada na construcao de alguns algoritmos e denic oes. A recursao requer:
um caso base para o qual e conhecido a solucao do problema, a sada do algoritmo
ou a denic ao.
uma etapa recursiva que fornece a soluc ao para o problema geral, para o algoritmo
ou a denic ao em termos de uma versao mais simples do problema, do algoritmo
ou da denic ao. Mais simples, aqui, signica mais proximo do caso base.
Em parte, a recursao e importante em matematica porque uma proposic ao que envolve
recursao ja sugere um procedimento de sua prova(a qual e por inducao matematica).
111
112 CAP

ITULO 6. RECURS

AO
Pensamento recursivo
Ate aqui so escrevemos expressoes como
1. 1 + 2 +... + 99
2. 20 19 ... 2 1
Os pontos, ..., acima, signicam(supostamente) que o padrao dos primeiros ter-
mos continua ate o ultimo. Entretanto, este padrao nao e estabelecido explicitamente,
e consequentemente, do ponto de vista de um construtor de algoritmos nao esta claro
o que deve ser feito. Uma maneira construtiva de escrever uma expressao contendo um
procedimento repetitivo e por meio de uma func ao denida recursivamente.
Denimos a funcao soma e fatorial, sobre os n umeros naturais, como segue:
1. soma.
soma: N N
soma(n) =
_
0 se n = 0
n +soma(n 1) se n ,= 0
Exemplo 82 Calcular soma(99)
Solucao: soma(99) = 99 + soma(98).
Para avaliar soma(98) apliquemos a denicao novamente
98 + soma(97)
.
.
.
A chamada recursiva para quando n = 0 com a avaliacao soma(0) = 0.
Portanto, a avaliacao denitiva e dada por:
(99+(98+...(1+0)...)) = 4950.
2. fatorial
fatorial:N N
fatoria(n) =
_
1 se n = 0
n fatorial(n 1) se n 1
A notacao usual para fatorial(n) e n! Com esta notacao, n! = 1, se n=0 ou n(n1)!,
se n 1.
Exemplo 83 Calcular fatorial(20),(isto e, calcular 20!).
113
Solucao: fatoria(20) = 20 fatorial(19)
Para avaliar fatorial(19) apliquemos a denicao novamente
19 fatorial(18)
.
.
.
A chamada recursiva para em n = 0, com fatorial(0) = 1.
A multiplicacao denitiva e entao avaliada, dando:
(20 (19 ...(1 1)...)) = 2.4329 10
18
Sigma ou notacao de somatoria
A notacao de somatorio ou sigma (a letra grega ) e usada para indicar a adiac ao
repetida.
Se f e uma func ao denida sobre os n umeros naturais, ent ao a notacao de somatorio
e denida para os naturais n e a, com n a, por:
n

j=a
f(j) = f(a) +f(a + 1) +... +f(n).
A soma no lado direito tem n a + 1 termos. (A vari avel j e chamada variavel muda
porque ela pode ser substituda por uma outra variavel sem afetar a soma.)
Por exemplo:
99

j=1
j = 1 + 2 +... + 99
A notacao pode ser usada para expressar a expansao decimal de um n umero na base
x, como foi visto anteriormente. Portanto:
n = a
k
a
k1
...a
0
=
k

j=0
a
j
x
j
Para evitar uma denic ao envolvendo ..., a notacao do somatorio pode ser denido
recursivamente como segue:

n
j=a
f(j) =
_
0 se n < a
f(n) +

n1
j=a
f(j) se n a
114 CAP

ITULO 6. RECURS

AO
Exemplo 84 Calcular:
8

i=6
(2i 3)

8
i=6
(2i 3) = (2 8 3) +

7
i=6
(2i 3)
= (2 8 3) + (2 7 3) +

6
i=6
(2i 3)
= (2 8 3) + (2 7 3) + (2 6 3) +

5
i=6
(2i 3)
= (2 8 3 + (2 7 3 + (2 6 3 + 0)))
= 33
Alguns resultados gerais sobre a notac ao

sao uteis.

n
j=a
(f(j) +g(j)) =

n
j=a
f(j) +

n
j=a
g(j)

n
j=a
c = c(n a + 1) (c constante)

n
j=a
cf(j) = c

n
j=a
f(j)
Exemplo 85

8
j=6
(2j 3) =

8
j=6
2j +

8
j=6
(3)
= 2

8
j=6
j + (3)(8 6 + 1)
= 2(6 + 7 + 8) + (3)(3)
= 33
Resolucao de problemas
No que segue, daremos alguns exemplos com o objetivo de ilustar a abordagem recursiva
para a resolucao de problemas.
Exemplo 86 Achar uma solucao recursiva para o n umero de sequencias binarias de n-
dgitos sem 0s consecutivos.
Uma sequencia binaria e uma sequencia de 0s e 1s. 11010 e uma sequencia
binaria de 5-dgito que satisfaz a condicao.
Dena a
n
como sendo o n umero de sequencias binarias de n-dgitos sem zeros
consecutivos.
Para n = 1 as sequencias possveis sao 0, 1. Portanto, a
1
= 2.
Para n = 2 as sequencias possveis, que satisfazem `as condicoes, sao 11, 10,
01. Portanto, a
2
= 3.
115
Agora, toda sequencia de comprimento n termina em 1 ou 0. Existe exatamen-
te uma sequencia de comprimento n terminando em 1, para cada sequencia
legtima de comprimento n - 1, pois colocando um 1 no m de uma sequencia
nao quebra a condicao requerida. Para que uma sequencia com mais que um
membro termine em 0 e necessario que ela termine em 10, para satisfazer a
condicao. Existe exatamente uma sequencia de comprimento n terminando
em 10, para cada sequencia legtima de comprimento n - 2. Portanto:
a
n
= o n umero terminando em 1 + o n umero terminando em 10
= a
n1
+a
n2
A solucao recursiva do problema e entao:
a
n
=
_
_
_
2 se n = 1
3 se n = 2
a
n1
+a
n2
se n 3
A formula recursiva gera a sequencia
2, 3, 5, 8, 13, ..
onde cada termo apos o segundo e obtido adicionando seus dois predecessores.
Exemplo 87 Achar o n umero das sequencias ternarias de n-dgito que tem um n umero
par de 0s. Uma sequencia ternaria e aquela constituda de 0s 1s e 2s. A sequencia
0011010 e exemplo de uma sequencia ternaria que satisfaz a condicao exigida no problema.
Uma sequencia de comprimento n deve terminar em 0, 1 ou 2. Aquelas sequencias
terminando em 1 ou 2 sao formadas colocando-se um 1 ou um 2 apos uma sequencia de
comprimento n - 1 que satisfaz a condicao. Por outro lado, uma sequencia terminando
em 0 e formada colocando-se um 0 apos uma sequencia de comprimento n - 1 que tem
um n umero mpar de 0s.
O n umero total de sequencias ternarias de comprimento n - 1 e 3
n1
. Portanto, existem
3
n1
s
n1
sequencias ternarias de comprimento n - 1 com um n umero mpar de zeros.
Portanto:
s
n
= n
o
terminando em 1 ou 2 + n
o
terminando em 0
= 2s
n1
+ (3
n1
s
n1
)
= s
n1
+ 3
n1
Existem duas sequencias de comprimento 1, que sao 1, 2. (aquela constituda de um
0 nao contem um n umero par de 0s.) Portanto, a solucao recursiva e:
s
n
=
_
2 se n = 1
s
n1
+ 3
n1
se n 2
A formula recursiva gera a sequencia
116 CAP

ITULO 6. RECURS

AO
2, 2 + 3, 2 + 3 + 3
2
...
isto e, 2,5,14,41,...
Exemplo 88 Um emprestimo de r$20.000 tem de ser pago em 12 prestacoes anuais
iguais. O juro e de 14% ao ano, computado anualmente. Achar a prestacao anual.
As prestacoes devem cobrir o capital principal mais o juro. Mas, a componente de
juro de cada prestacao e diferente. A componente de juro se reduz cada ano, pois o debito
decresce a cada ano.
Para calcular o valor do juro num dado ano e preciso conhecer o debito nesse ano, no
entanto so conhecemos o debito no incio(20.000 reais) e a exigencia de que no m ele
seja 0 reais. Entretanto se o debito do precendente fosse conhecido, seria possvel calcular
o juro, e subtraindo a parte xa, determinar o debito no m do ano.

E conhecido o debito
no incio do primeiro ano. Portanto, a exigencia para achar o debito, no m de cada
ano, como uma solucao recursiva esta satisfeita. A tabela de tempo abaixo ilustra o que
acontece.
Debito(em reais)
20.000 d
1
d
j
d
12
= 0
0 1 j 12
1
0
ano j-esimo ano 12
0
ano
O primeiro ano comeca no tempo 0 e termina no tempo 1. Em geral, o j-esimo ano
comeca no tempo j.
O debito no m do j-esimo ano, apos cada pagamento no m de cada ano ter sido
feito, e representado por d
j
reais.
O pagamento anual e representado por r reais.
debito no m do ano = debito no m do ultimo ano + juros - o que foi pago
d
j
= d
j1
+ (.14)d
j1
r
= (1.14)d
j1
r
A formula recursiva para d
j
em termos de d
j1
e d
j
= (1.14)d
j1
r.
O fato base e d
0
= 20000. Sabemos que d
12
= 0. Aplicando repetidamente a etapa
recursiva resulta:
d
12
= (1.14)d
11
r
= (1.14)((1.14)d
10
r) r
= (1.14)
2
d
10
r[1 + 1.14]
= (1.14)
3
d
9
r[1 + 1.14 + (1.14)
2
]
=
.
.
.
= (1.14)
12
d
0
r[1 + 1.14 + (1.14)
2
+... + (1.14)
11
]
= 20000(1.14)
12
r[1 + 1.4 + (1.14)
2
+... + (1.14)
11
]
117
Dado que o debito tem que ser pago em 12 anos, temos d
12
= 0 e a equacao pode,
agora, ser resolvida para r. Usando a formula para a soma de uma serie geometrica
obteremos:
r(
1.14
12
1)
1.141
= 20000(1.14)
12
portanto r =
20(1.14)
12
(.14)
1.14
12
1
= 3533.3865
Logo, o pagamento deve ser `a base de 3533.39 reais ao ano.
DISCUSS

AO: No exemplo anterior o caso base, d


0
= 20000, e a formula recursiva ou
relacao de recorrencia, d
j
= (1.14)d
j1
r, sao sucientes para gerar a sequencia d
0
, d
1
, ...,,
mas, os termos sao expressos em termos de r. Para determinar o valor de r deve ser usada
a condic ao adicional d
12
= 0. Os valores para d
0
, d
12
, etc., sao chamados valores de
fronteira.
Exemplo 89 (busca binaria): Suponha que x =< x
1
, x
2
, ..., x
n
> e uma sequencia na
qual x
1
x
2
... x
n
. Um matematico descreveria esta sequencia como monotonica
crescente, enquanto um cientista da computacao descreve-la-ia como uma lista ordenada.
O problema consiste em descobir se um certo n umero(chamado chave), digamos a, e um
membro da sequencia. Isto e, achar o subescrito m tal que x
m
= a ou mostrar que a
nao esta na sequencia. Nao e pedido para achar cada ocorrencia de a, se existirem varios
membros da sequencia que sejam iguais a a.
Descreveremos o algoritmo da busca binaria recursivamente. Em seguida, estabelece-
lo-emos como um procedimento iterativo. A busca sera efetuada sobre o subscrito de x,
resultando uma mensagem nao encontrado se a nao estiver na sequencia ou o subescrito
m, se a = x
m
.
Etapa basica: Se a lista for vazia, registre a nao esta na lista.
Etapa recursiva: Se a lista for nao vazia,
compare o elemento do meio da lista com a.
se eles sao iguais, ent ao a foi encontrado.
se o elemento do meio for menor que a,
pesquise a lista do meio para cima.
se o elemento do meio e maior do que a
pesquise a lista do meio para baixo.
Em cada caso, se a nao for encontrado a etapa recursiva produz uma lista menor que
esta mais proxima da lista vazia. O agoritmo nao pode descartar uma lista que contenha
a. Portanto, ou sera encontrado um a ou termina com um registro de que nao existe
um a na lista.
118 CAP

ITULO 6. RECURS

AO
Dado a sequencia crescente < x
p
, x
p+1
, ..., x
m
, ..., x
q
>, de x, dena o termo central
como sendo o termo para o qual
m = [
p +q
2
] se p q; m nao esta denido para p > q.
p e o subescrito do menor termo e q do maior dos termos nao rejeitados na busca.
Dena a lista para cima como sendo a sequencia crescente < x
m+1
, ..., x
q
> .
Dena a lista para baixo como sendo a sequencia decrescente < x
p
, x
p+1
, ..., x
m1
>.
Algoritmo 9 (Busca binaria) Para pesquisar uma sequencia crescente para encontrar
a localiza cao da chave a, ou mostrar que a nao esta na sequencia.
entradas: a, o elemento que estamos buscando.
Uma sequencia < x
1
, ..., x
n
>, com os ndices de 1 a n,
do primeiro ao ultimo elemento da sequencia.
precondic oes: x
1
x
2
... x
n
.
sada: Um registro.
metodo: p 1
q n
Repita
_
_
_
m [
p+q
2
]
se a < x
m
ent aoq m1(pesquisar lista para baixo)
senao, p m+ 1(pesquisar lista para cima)
ate x
m
= a ou p > q.
se x
m
= a, entao registre x
m
= a;
senao registre a nao foi encontrado.
Prova: A prova de que esse algoritmo, de fato, faz aquilo que pretendemos, e por
inducao matematica sobre o n umero de termos na sequencia.
Dena l como sendo q p +1 para a sequencia < x
p
, ..., x
q
>. Portanto, l e o n umero
de termos na sequencia.
Dena P(l) como sendo o predicado o algoritmo pesquisa corretamente todos as
sequencias crescentes < x
p
, ..., x
q
> com l termos.
Basico: l = 1. Mostrar que P(1) e verdadeiro.
Se l = 1, entao p = q e a sequencia so tem um termo, x
p
. O ndice m e calculado
para ser [
p+q
2
] = p. Se x
p
= a esse fato e registrado. Se x
p
> a o valor de q e reduzido
(q m1) e saimos do laco com p > q. Novamente o algoritmo termina com o registro
correto de que a nao foi encontrado. Portanto P(1) e verdadeiro.
Etapa indutiva: Mostrar que P(1) P(2) ... P(k) P(k + 1).
Assuma que o algoritmo pesquisa corretamente todas as sequencias crescentes com um
n umero de termos k, ou menos, com k 1. Considere uma sequencia crescente com k +1
119
termos. Existirao no mnimo dois termos na sequencia. O efeito da aplicacao do algoritmo
e ou encontrar a ou remover no mnimo um dos termos da sequencia. O resultado e uma
sequencia que sera pesquisada corretamente(pela hipotese indutiva.)
Pelo princpio(forte) da inducao matematica o algoritmo esta correto para toda se-
quencia crescente com um ou mais termos.
A etapa indutiva corresponde a um passo na repetic ao do laco. Cada passo ou
encontra a ou divide pela metade o n umero de termos na sequencia a ser pesquisada. No
pior caso, seria preciso log
2
n partic oes para reduzir o n umero de termos na sequencia a
um. Por exemplo, uma sequencia com 1000 termos precisaria dez partic oes pela metade
para reduzi-la a um termo. No futuro consideraremos a eciencia do algoritmo.
Exemplo 90 Determine se 2.77 esta na sequencia ordenada
ln 10, ln 11, ln12, ln13, ln14 ; ln15, ln16, ln17
onde cada membro da sequencia e dado com duas casas decimais exatas. Estamos
supondo que nao sabemos nada sobre a funcao ln, alem do fato de que seus valores sao
avaliadas numa calculadora.
sequencia < x
p
, ..., x
q
> p > q p q m x
m
x
m
= a?
x
1
, ..., x
8
f 1 8 4 2.56 nao
x
5
, ..., x
8
f 5 8 6 2.71 nao
x
7
, x
8
f 7 8 7 2.77 sim
A pesquisa mostra que o 7
o
termo na sequencia e 2.77.
Recursao e listas
Um conjunto de elementos numa certa ordem pode ser chamado uma lista. As listas sao
muito importantes em computac ao. Na linguagem comum, uma sentenca pode ser vista
como uma lista de palavras, e cada palavra pode ser vista como uma lista de caracteres
alfabeticos. Potanto, uma lista pode consistir de uma lista de elementos, que por sua vez
tambem e uma lista. A seguir deniremos algumas func oes sobre listas.
Lista. O conjunto de todas as listas sob consideracao sera denotado por lista. As
listas podem ser representadas por l
1
, l
2
, .., l ou escrevendo seus elementos.
As listas [a,b,c], [a,a,b,c] e [c,a,b] sao listas diferentes.
Elemento. O conjunto de todos os elementos sob consideracao para uma lista parti-
cular, pode ser char, o conjunto dos caracteres, ou N, o conjunto dos n umeros naturais.
O conjunto E sera usado para denotar um conjunto geral de elementos, a partir do qual
sao escolhidos os elementos de qualquer lista particular.
120 CAP

ITULO 6. RECURS

AO
Lista vazia. Uma lista sem elementos e chamada lista vazia, escrito [ ].
Comprimento. O n umero de elementos numa lista e chamado seu comprimento.
Se l = [x
1
, x
2
, ..., x
n
] entao, comprimento(l) = n.
Existem tres func oes denidas sobre listas que sao particularmente importante. As
funcoes cabeca(), cauda() e concatenacao() fornecem uma base a partir da qual todas as
outras operac oes comuns em listas podem ser obtidas(por recursao).
Cabeca. A cabeca de uma lista e denida como sendo o seu primeiro elemento. A
cabeca da lista l sera escrita cabeca(l), que e um elemento, nao uma lista. A cabeca nao
pode ser denida sobre a lista vazia.
Cauda. A cauda de uma lista e a lista obtida removendo a cabeca da lista original.
A cauda da lista l sera denotada por cauda(l), que e uma lista. A cauda nao pode ser
denida sobre a lista vazia.
Concatenacao. A lista obtida colocando a sequencia l
2
apos a sequencia l
1
e chamada
concatenacao(l
1
, l
2
) e sera escrita l
1
concl
2
ou conc(l
1
, l
2
).
Por exemplo:
(a) cabeca([s, e, t, t, e, r]) = s
(b) cauda([s, e, t, t, e, r] = [e, t, t, e, r]
(c) conc([c, a, r], [r, o]) = [c, a, r]conc[r, o] = [c, a, r, r, o].
Existem muitas funcoes que podem ser denidas sobre listas. Muitas vezes, e vantagoso
apresentar essas denicoes na forma recursiva, denindo uma funcao sobre uma lista em
termos da mesma funcao sobre uma lista menor. O exemplo a seguir mostra como algumas
funcoes sobre listas podem ser denida recursivamente.
Comprimento. Construir uma denicao recursiva da funcao comprimento(comp) de
uma lista.
comp:listaN
comp(l) =
_
0 l = [ ]
1 +comp(cauda(l)), senao
Reversa. Construir uma denicao recursiva da funcao que reverte a ordem dos ele-
mentos numa lista.
121
reverta : lista lista
reverta(l) =
_
l, se l = [ ]
reverta(cauda(l)) conc [cabeca(l)], senao
Para ilustrar a operacao da denicao recursiva para a reversa ela sera aplicada sobre
a lista [c,a,t].
reverta([c, a, t] = reverta([a, t]) conc [c]
= (reverta([t]) conc [t] conc [c]
= ((reverta([ ]) conc [a] conc [c]
= [ ] conc [t] conc [a] conc [c]
= [t, a, c]
Inserir. Construir uma denicao recursiva de uma funcao que insere um certo carac-
tere numa dada posicao numa lista dada.
insera : lista E N lista
Uma precondicao para insira e n [l[ +1. Leia insira(l, e, n) como insira o caractere
e na posic ao n na lista l.
insira(l,e,n) =
_
[e] conc l se n = 1
[cabeca] conc insira(cauda(l), e, n 1), senao
Recursao e sequencias
Sequencias podem ser denidas recursivamente como nos exemplos anteriores. A se-
quencia geometria e a sequencia aritmetica sao sequencias bem conhecidas como sendo
denidas, mais naturalmente, por recursao.
Sequencia geometrica.
t
n
= rt
n1
para n 2, t
1
= a
Desdobrando esta denicao obteremos a sequencia geometrica.
a, ar, ar
2
, ..., ar
n1
sequencia aritmetica
tn = t
n1
+d para n 2, t
1
= a
122 CAP

ITULO 6. RECURS

AO
Desdobrando esta denicao obteremos a sequencia aritmetica:
a, a +d, a + 2d, ..., a + (n 1)d
A denicao recursiva para uma sequencia consiste de uma relacao de recorrencia
mais as condic oes iniciais.
Uma relacao de recorrencia para uma sequencia t
1
, t
2
, . . . relaciona cada termo da
sequencia a um ou mais termos precedentes.
As condic oes iniciais para essa relacao de recorrencia especica os valores dos termos
t
1
, t
2
, . . . para aplicar a relacao de recorrencia.
O n umero dos termos precedentes exigida pela relacao de recorrencia e igual ao n umero
das condi coes e sera chamado a ordem da relacao de recorrencia.
Observacao(para aqueles que ja zeram calculo). Uma relacao de recorrencia pode ser
tratada como uma versao discreta de uma equacao diferencial.
O seguinte exemplo ilustra a denicao recursiva de uma sequencia.
Exemplo 91 A denicao
a
n
= 2a
n1
a
n2
, n 2 (relacao de recorrencia)
a
0
= 1, a
1
= 2 (condicoes iniciais)
produz a sequencia 1,2,3,4,... A relacao de recorrencia e de ordem 2.
Exemplo 92 A denicao
s
n
s
n1
= n 1, n 2 (relacao de recorrencia)
s
1
= 0 (condicoes iniciais)
gera a sequencia 0,1,3,6,... A relacao de recorrencia e de ordem 1.
Exemplo 93 A relacao de recorrencia
a
n
= 4a
n2
, n 2
e de ordem 2, embora so exista um termo na formula para a
n
. Para determinar os
termos da sequencia sao necessarios dois valores iniciais.
Exemplo 94 A denicao
x
n
=
_
2x
n1
+ 1 se n 2 (relacao de recorrencia)
1se n = 1 (condicao inicial)
gera a sequencia 1,3,7,15,.... Esta e uma recorrencia de primeira ordem.
123
Exemplo 95 A denicao
s
n
2s
n1
3s
n2
= 0, n > 1 (relacao de recorrencia)
s
0
= 3, s
1
= 1 (condicoes iniciais)
gera a sequencia 3,1,11,25,... Esta e uma relacao de recorrencia de segunda ordem.
As sequencias nos exemplos 102, 104 e 95 sao escritas como homogeneas com
coecientes constantes pois todos os termos sao da mesma especie, nomeadamente termos
da sequencia com coeentes constantes.
Calculo dos termos de uma sequencia
Seja a sequencia s
0
, s
1
, ...,
Um calculo iterativo acha o n-esimo termo da sequencia calculando todos os termos
s
0
, s
1
, ..., ate s
n
.
Um calculo recursivo acha s
n
encontrando os termos dos quais s
n
depende, e entao
achando os termos precedentes dos quais esses dependem e assim sucessivamente, ate
atingir as condicoes iniciais, quando entao todos os termos necessarios para a avaliacao
de s
n
serao calculados.
Um terceiro metodo para a avaliacao de s
n
e encontrar uma formula explcita para s
n
como uma funcao de n. Este metodo e chamado resolver a relacao de recorrencia para
s
n
. A efeciencia de cada um desses metodos varia muito. Embora somente mais adiante
discutiremos eciencia de algoritmos em geral, vale a pena analizar o problema agora no
contexto do calculo de termos da sequencia.
Considere a sequencia s
0
, s
1
, ... denida por uma relacao de recorrencia de segunda
ordem. Uma abordagem iterativa avalia s
2
a partir dos valores dados de s
1
e s
0
, s
3
a
partir de s
2
e s
1
, ... e nalmente s
n
a partir de s
n1
e s
n2
.
Existem, portanto, no todo n - 1 avaliacoes.
Uma abordagem recursiva avalia s
n
a partir dos dois antecessores (s
n1
, s
n2
) e cada
um desses dois dos seus dois predecessores e assim por diante, dobrando o n umero de
chamadas da funcao em cada estagio no sentido de s
0
e s
1
, cujos valores sao conhecidos.
Para completar o calculo, `as vezes e necessario avaliar entre 2
n1
e 2
n2
funcoes.
Para achar o 11
o
termo numa sequencia de segunda ordem, um metodo iterativo re-
quereria 10 avaliacoes de funcoes e um metodo recursivo requereria entre 512 e 1024
avaliacoes. Portanto, existe uma grande vantagem no uso do metodo iterativo em ava-
liacoes com mais que alguns termos, para este tipo de sequencia. Entretanto, a comparacao
nao e universalmente em favor do metodo iterativo. Podemos, com frequencia, dispor o
metodo recursivo de modo que ele possa competir, em termos de eciencia, com o metodo
iterativo.
124 CAP

ITULO 6. RECURS

AO
Por outro lado, se for possvel achar a solucao da relacao de recorrencia, a avaliacao
por formula pode ate ser mais eciente que a recursao ou a iteracao. Por exemplo,
mostramos, abaixo, que a formula para s
n
, no exemplo 102 e s
n
= n + 1. Isto requer
um unico calculo, enquanto o metodo iterativo necessita n 1 desses calculos.
O esquema iterativo para o calculo dos termos numa sequencia pode ser facilmente
escrito como um algoritmo(e facilmente programado). O exemplo a seguir ilustra como
isso pode ser feito.
Exemplo 96 Desenvolver um algoritmo iterativo para calcular a relacao de recorrencia
no exemplo 102.
Chamaremos precessor de um termo aquele termo que vem antes dele. A re-
lacao de recorrencia no exemplo 102 pode agora ser estabelecido como o
termo corrente e duas vezes o primeiro predecessor menos o segundo predeces-
sor.
entradas: n, um n umero natural
precondicoes: n > 1.
metodo: p0 1 (valor inicial para o segundo predecessor)
p1 2 (valor inicial para o primeiro predecessor)
para j = 2 a n
_

_
a 2 p1 p0
(derivada de a
n
= 2a
n1
a
n2
)
p0 p1 (atualiza o segundo predecessor)
p1 a (atualiza o primeiro predecessor)
sada: a.
poscondic oes: a = a
n
, denido no exemplo 102.
Resolvendo uma relacao de recorrencia atraves da observacao de um padrao
Uma relacao de recorrencia pode, `as vezes, ser resolvida observando alguns termos na
sequencia e conjecturando uma formula para o termo geral.

E necessario provar que esta
formula esta correta. Isto pode ser feito pelo metodo de inducao matematica.
O calculo de alguns termos do exemplo 102 gera:
n = 2 a
2
= 2 2 1 = 3
n = 3 a
3
= 2 3 2 = 4
n = 4 a
4
= 2 4 3 = 5
Podemos conjecturar que a
n
= n + 1. Mas estara esta formula correta?
125
Prove que a
n
= n + 1 e a formula correta para o termo geral da sequencia denida
no exemplo 102, ou seja:
a
n
= 2a
n1
a
n2
, n 2. a
0
= 1, a
1
= 2
Prova Etapa basica: a
0
= 1 e a
1
= 2
Portanto, a
n
= n + 1 para n=0 e n=1.
Etapa indutiva: Assuma que a formula esta correta para dois termos suces-
sivos especcos da sequencia. Isto e, assuma que para um k especco
a
k
= (k 1) + 1 = k
a
k2
= (k 2) + 1 = k 1
entao o sucessor e
a
k
= 2a
k1
a
k2
pela relacao de recorrencia
= 2(k) (k 1) por hipotese
= k + 1
Portanto, a formula esta correta para n = k.
Pelo princpio da inducao matematica:
a
n
= n + 1 para todos os inteiros n 0.
Os exemplos 103 e 105 podem ser resolvidos analogamente.
Exemplo 97 s
n
= s
n1
+ (n 1), n 2, s
1
= 0.
Sequencia: 0, 0+1, 0+1+2, 0 + 1 + 2 + 3, ...
A conjectura, s
n
=
n(n1)
2
, pode ser provada por inducao matematica.
Exemplo 98 x
n
= 2x
n1
+ 1, n 2, x
1
= 1.
Sequencia: 1, 3, 7, 15, ... A conjectura x
n
= 2
n
1 pode ser provada por
inducao matematica.
126 CAP

ITULO 6. RECURS

AO
Relacoes de recorrencia de segunda ordem, homogeneas e lineares
Nao e possvel, em geral, conjecturar solucoes. No entanto, existem bons metodos pa-
ra encontrar solucoes para algumas relacoes de recorrencias particulares. Analizaremos
relacoes de recorrencia de segunda ordem, homogeneas, de coecientes constantes.
Teorema 7 (Linearidade) Se s
n
+ as
n1
+ bs
n2
= 0 tem solucao f(n) e g(n), entao
c
1
f(n) +c
2
g(n) tambem e uma solucao, para c
1
, c
2
constantes arbitrarias.
Prova: Substitua s
n
por c
1
f(n) +c
2
g(n) no lado esquerdo da relacao de recorrencia.
(c
1
f(n) +c
2
g(n)) +a(c
1
f(n 1) +c
2
g(n 1))
b(c
1
f(n 1) +c
2
g(n 1))
= c
1
(f(n) +af(n 1) +bf(n 2)) +c
2
g(n) +ag(n 1)+
bg(n 2))
= c
1
0 +c
2
0
= 0
As equacoes para as quais este teorema se verica sao denominadas lineares. Assim,
podemos agora estabelecer que relacooes de recorrencias homogeneas com coecientes cons-
tantes sao relacoes de recorrencia lineares. A prova nao depende da ordem da relacao de
recorrencia e portanto podemos concluir que todas relacoes de recorrencia homogeneas
com coecientes constantes sao lineares.
Exemplo 99 Achar a solucao para o exemplo 95 repetido abaixo.
s
n
= 2s
n1
+ 3s
n2
, s
0
= 3, s
1
= 1.
Sabemos que as solucoes deste tipo de equacao tem a forma
s
n
= x
n
para algum x.
Tentemos a solucao f(n) = x
n
, onde x nao e ainda conhecido.
s
n
2s
n1
3s
n2
= 0 (6.1)
x
n
2x
n1
3x
n2
= 0 (6.2)
127
Dividindo a segundo equacao por x
n2
:
x
2
+ 2x 3 = 0 (6.3)
(x 3)(x + 1) = 0 (6.4)
Portanto, x = 3 ou x = 1.
As solucoes da relacao de recorrencia sao f(n) = 3
n
e g(n) = (1)
n
.
Pelo teorema da linearidade:
s
n
= c
1
3
n
+c
2
(1)
n
.
Esta equacao e a solucao geral para a relacao de recorrencia 6.1. Observe
que ela tem duas constantes arbitrarias c
1
e c
2
que corresponde ao fato de que
a relacao de recorrencia e de segunda ordem.
Ascondicoes iniciais nos possibilitam determinar c
1
, c
2
.
s
0
= c
1
3
0
+c
2
(1)
0
= 3
s
1
= c
1
3
1
+c
2
(1)
1
= 1
c
1
+c
2
= 3
3c
1
c
2
= 1
adicionando 4c
1
= 4
c
1
= 1
c
2
= 2
A solucao e, portanto,
s
n
= 3
n
+ 2(1)
n
, para n 0
A equacao 6.3
x
2
2x 3 = 0
e chamada equacao caractstica para s
n
= 2s
n1
3s
n2
= 0.
128 CAP

ITULO 6. RECURS

AO
Exemplo 100 (Fibonacci): Os n umeros de Fibonacci sao denidos como os termos da
sequencia,
F(n) =
_
1 se n = 0 ou n = 1
F(n 1) +F(n 2) se n 2,
uma relacao de recorrencia homogenea de segunda ordem.
A equacao caracterstica e
x
2
x 1 = 0
com solucao: x =
1+

5
2
ou
1

5
2
Portanto, F(n) = c
1
(
1+

5
2
)
n
+c
2
(
1

5
2
)
n
Vamos escrever F
n
em lugar de F(n). Com os valores iniciais F
0
= F
1
= 1
obteremos:
c
1
=
1+

5
2

5
e c
2
= (
1

5
2

5
)
portanto F
n
=
1

5
(
1+

5
2
)
n+1

5
(
1

5
2
)
n+1
Considerando o valor absoluto do segundo termo podemos ver que F
n
e o
inteiro mais proximo de
1

5
(
1 +

5
2
)
n+1
Comentario historico: Leonardo de Pisa, conhecido como Fibonacci, foi um co-
merciante italiano. Ele viajou em muitas partes do mundo islamico daquela epoca. Seu
Liber Abaci apareceu como um manuscrito em 1202, com ampla circulacao. Este manus-
crito desempenhou um papel importante na introducao da matematica

Arabe na Europa.
O livro contem um problema cuja solucao e a sequencia 1, 1, 2, 3, 5, 8,... onde cada ter-
mo apos o segundo e a soma dos dois termos que o precedem. Os n umeros sao chamados
n umeros de Fibonacci, tendo aparecido em muitas investigacoes.
6.0.1 EXERC

ICIOS
Em geral, a equacao caracterstica de uma relacao de recorrencia homogenea de segunda
ordem com coecentes constantes e uma equacao quadratica e como tal ela tem duas razes
distintas, uma raz repetida ou nenhuma raz real. O caso da raz repetida e dado no
exerccio 31 que pode ser tentado por aqueles que tem algum conhecimento de n umeros
complexos.
129
1.
(a)Calcule :

3
i=0
(i
2
1) (b)

2
i=2
(2j + 3) (c)

1
i=2
(i + 1)
2. Uma funcao produto e denida sobre os n umeros naturais por:
produto(n) =

n
i=a
f(i) =
_
f(a) f(a + 1) ... f(n) se n a
1 se n < a
Dar uma denicao recursiva para a funcao produto.
3. (a)Compute

5
i=1
i
2
(b)Mostre que

n
i=1
= (n!)
2
(c)Compute

1
i=1
2i
4. Uma sequencia de quadrados pode ser colorida de modo que cada um dos quadrados
seja vermelhos ou branco. Seja a
n
o n umero de maneiras de colorir a sequencia
de tal modo que nunca dois quadrados vermelhos sejam adjacentes. Encontre uma
relacao de recorrencia para a
n
.
5.

E necessario formar cadeias(strings) com as letras do alfabeto

= a, b. Seja s
n
o n umero de cadeias contendo n letras que nao contem a sequencia ab.
(a) Encontre uma formula recursiva para s
n
.
(b) Encontre uma formula para s
n
em termos de n.
6. Ache uma equacao recursiva para s
n
, o n umero de sequencias de n-dgitos compostas
dos dgitos 0, 1, 2, nas quais nenhuma das sequencias contem 1s consecutivos.
(Para n=5, 00121, 10121 sao exemplos possves de tais sequencias. 20110 nao sera
permitida.)
7. Um emprestimo de r$30000 deve ser dividido em prestacoes mensais iguais de r$500.
A taxa de juro e de 15% ao ano, composto mensalmente. O debito restante e encon-
trado calculando o debito mais juros menos o pagamento em qualquer tempo. Seja
d
n
o debito restante no m do n-esimo mes, exatamente apos ter sido calculado o
juro do mes e o pagamento do mes corespondente.
Escrever uma formula recursiva que permita calcular d
n
.
Construir um algoritmo para determinar o n umero de pagamentos, o total de juros
pagos e a quantidade de pagamentos no ultimo pagamento.
8. Uma soma de r$5000 e depositada numa conta que paga 1% de juros compostos
mensalmente. A partir da, por dezoito meses, e acrescentado `a conta r$200 ao m
de cada mes. Seja s
n
a enconomia da poupanca incluindo juros, na conta, no m
do n-esimo mes, imediatamente apos terem sidos adicionados o valor de deposito
mensal e juros.
130 CAP

ITULO 6. RECURS

AO
(a) Encontre uma relacao de recorrencia para s
n
.
(b) Encontre s
18
.
9. Procuramos uma chave para a sequencia de chaves arranjadas em ordem ascendente.
x
1
, x
2
, ..., x
100
Suponha que a chave que procuramos(desconhecida para nos) seja x
18
, a decima
oitava chave na sequencia. Usando pesquisa binaria para examinar a chave, qual
chave seria examinada antes que a da direita fosse encontrada?
10. Cada n umero na sequencia seguinte e armazenado correto ate duas casas decimais
e colocados numa lista.

150,

151, ...,

165
Caminhe numa busca binaria para determinar se 12.49 esta na lista, ou mostre que
nao esta.
11. A funcao remova( ) mapeia um caractere, x, e uma lista de caracteres, l, em uma
lista. Ela esta denida recursivamente por
remova(x,l) =
_
_
_
l se l =< >
remova(x, cauda(l)) se cabeca(l) = x
< cabeca(l) > [[remova(x, cauda(l)) caso contrario
Os tres casos devem ser entendidos como aplicados na ordem dados na denicao.
Encontre a sada para remova(e, < e, v, e, n >), e descreva em palavras o que e que
remava() faz.
12. Dena, recursivamente, uma funcao removaPrimeiro() que remove a primeira ocorrencia
de um caractere numa lista de caracteres.
13. Dena, recursivamente, uma funcao substitua() que substitui toda ocorrrencia de
um caractere por um outro de lista de caracteres.
14. Construa uma denicao recursiva de uma funcao ePar?() que mapeia os n umeros
do conjunto 0, 1, 2, 3,.. em B = t, f, retornanado t se o n umero for par e f,
se o n umero for mpar.
15. Construa uma funcao recursiva para o comprmento() de cadeias de um alfabeto A.
131
16. Construa uma denicao recursiva para a funcao potencia(). A funcao e denida
para os inteiros a, n onde a > 0, n 0, por:
potencia(a,n)=
_
1, se n = 0
a a ... a, (n fatores) se n 1
17. As mensagens sao transmitidas por um canal de comunicacao usando dois sinais. A
transmisao de um sinal requer um milesimo de segundo e o outro sinal requer dois
milesimo. Seja x
n
o n umero de diferentes mensagens consistindo de sequencias des-
ses dois sinais que podem ser enviadas em n milesimo de segundos. Cada sinal numa
mensagem segue imediatamente o anterior. Encontre uma relacao de recorrencia
para x
n
, incluindo as condicoes iniciais.
18. A sequencia x
n
e dada por:
x
n
=
_
_
_
1 se n = 1
3 se n = 2
3x
n1
2x
n2
se n > 2
(a) Construa um algoritmo para achar x
200
.
(b) Resolver a relacao de recorrencia para achar uma formula para x
n
, em termos
de de n,
19. Achar uma formula para s
n
em termos de n, dados s
0
= 1 e s
n
= 3s
n1
+ 2, para
n 1.
20. Encontre uma formula para x
n
em termos de n, dados x
0
= 4, s
1
= 1 e para n > 1,
21. Encontre uma formula para s
n
em termos de n, dados s
0
= 4, s
1
= 1 e para n > 1,
s
n
+s
n1
2s
n2
= 0
22. Encontre uma formula para a
n
em termos de n, dado que a
0
= 4, a
1
= 14 e
a
n
6a
n1
+ 8a
n2
= 0 para n 2.
23. Resolver a relacao de recorrencia(isto e, achar uma formula para a
n
em termos de
n):
a
n
= a
n1
+ 6a
n2
se n 2; a
0
= 2 a
1
= 6.
132 CAP

ITULO 6. RECURS

AO
24. Mostre que s
n
= n5
n
e uma solucao da relacao de recorrencia:
s
n
10s
n1
+ 25s
n2
= 0
Qual e a solucao geral?
25. Resolver a relacao de recorrencia:
a
n
+ 6a
n1
+ 9a
n2
= 0 se n 2; a
0
= 3, a
1
= 6
26. Uma sequencia a
n
e denida recursivamente:
a
0
= 1, a
1
= 3 e a
n
= 2a
n1
a
n2
para n 2
(a) Calcule alguns termos da sequencia e conjecture uma formula para a
n
como
uma funcao de n.
(b) Prove que a formula que voce encontrou esta correta. (Use inducao matematica.)
27. A sequencia a
n
e denida recursivamente:
a
n
= 2a
n1
a
n2
para n 2 e a
0
= 1, a
1
= 2
(a) Calcule alguns termos da sequencia e conjecture o termo geral para a
n
.
(b) Prove, por inducao matematica, que a formula para a
n
esta correta.
28. Encontre e resolva uma relacao de recorrencia para o n umero de sequencias binarias
de comprimento n em que cada subsequencia de 0

s e de comprimento par. (Seja s


n
o n umero de tais sequencias de comprimento n. Partir o conjunto de sequencias de
comprimento n naquele cujo ultimo membro e 0 e naquele cuja ultima entrada e 1.)
29. Seja s
n
o n umero de cadeias de comprimento n contendo 0s, 1s e (-1)s sem dois
1s consecutivos e sem dois (-1)s consecutivos. Encontre uma relacao de recorrencia
para s
n
.
30. O n umero de comparacoes e trocas no pior caso para o algoritmo bublesort satisfaz
a relac ao de recorrencia s
n
= s
n1
+n1. Encontre a solucao e portanto, a ordem
do algoritmo.
133
31. Resolver a relacao de recorrencia:
para n 2, s
n
+ 2s
n1
= 2s
n2
= 0. s
0
= 1, s
1
= 2
32. Considere a proposicao:
(
n

i=1
(i(n + 1) =
1
3
n(n + 1)(n + 2)).
(a) Escreva a proposicao para n=1.
(b) Prove que a proposicao se verica para n=1.
(c) Escreva a proposicao para n=k.
(d) Escreva a proposicao para n=k+1.
(e) Prove que se a proposicao se verica para n=k, entao ela deve se vericar
tambem para n=k+1. Comece provando como esta indicado abaixo.
Prova :

k+1
i=1
i(i + 1) = (propriedade recursiva de

)
Portanto (por hipotese)
Porque a proposicao e verdadeira para todo n 1 ?
134 CAP

ITULO 6. RECURS

AO
Captulo 7
Estruturas Algebricas
Nesta parte temos dois objetivos principais. O primeiro e identicar estruturas e proprieda-
des algebricas que aparecem com frequencia em computacao, e prove uma linguagem para
descrever essas estruturas para simplicar e nos ajudar a entender alguns dos sistemas com-
plexos envolvidos. O segundo objetivo e provar algumas propriedades gerais sobre as estruturas
algebricas, que serao muito uteis quando essas estruturas aparecerem em varios lugares.
O estudante deve ser capaz de usar a linguagem de estruturas e de identicar propriedades
algebricas particulares. Num nvel mais elevado, ele deve ser capaz de provar propriedades
sobre estruturas algebricas.
Neste captulo, introduziremos semigrupos, monoides, grupos, conjuntos parcialmente or-
denados, reticulados, algebras Booleanas e corpos nitos, com uma discussao das propriedades
elementares e uma indicacao de onde elas aparecem em computacao.
7.1

Algebras
Ja tivemos oportunidade de observar em outra parte que os sistemas matematicos pode-
riam ser distinguidos uns dos outros pelo estudo das operacoes que estao denidas sobre
eles.
Exemplo 101 A operacao de subtracao e denida sobre os inteiros e sobre os
n umeros naturais. Entretanto, a subtracao sbre os inteiros e uma funcao total,
enquanto a subtracao sobre os n umeros naturais nao e total, mas somente
parcial. Em outra palavras, a subtracao e fechada sobre os inteiros mas, nao
sobre os naturais.
Existem outras caractersticas estruturais atraves das quais poderamos mostrar que os
sistemas sao diferentes. Por exemplo, os n umeros naturais(N) sao bem-ordenados(isto
e, todo subconjunto de N tem um menor elemento), enquanto os n umeros reais e os
inteiros nao o sao.
135
136 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
Nesta secao apresentaremos algumas propriedades algebricas das operacoes e descre-
veremos algumas das mais importantes algebras ou estruturas algebricas. Intuitiva-
mente, uma algebra consiste de um conjunto de objetos junto com uma ou mais operacoes
sobre esses objetos. A algebra pode ser caracteriada pelas propriedades das operacoes.
`
As
vezes estao envolvidas mais que uma operacao.
Operac oes e suas propriedades algebricas
Nestas notas de aula usamos muitas operacoes. Por exemplo, a multiplicacao e a adicao
sobre os inteiros, a uniao e a interseccao sobre conjuntos. Parte da denicao de cada
opera cao e uma declaracao do conjunto sobre o qual ela esta denida. Por convinencia
repetiremos as denic oes ja apresentadas em outras partes.
Denicao 26 (Operacao binaria) Uma operac~ao binaria sobre um conjunto S e uma
funcao de S S em S.
Denicao 27 (Operacao unaria) Uma operac~ ao unaria sobre um conjunto S e uma
funcao de S em S.
Em cada caso, a palavra sobre signica que o valor da funcao nao pode esta fora
do conjunto. Ou seja, o conjunto e fechado sob a operacao.
Exemplo 102 A funcao de adic~ ao e uma operacao binaria sobre o conjunto
dos inteiros, Z. Isto e, Z e fechado sobre a adicao.
A funcao
adicao : Z Z Z
adicao(x, y) = x +y
satisfaz a denicao para uma operacao binaria sobre Z.
Observacao 2 A disposicao x + y e denominada notacao infixa. +(x, y) e chamada
notacao prefixa e (x, y)+ e chamada notacao posfixa. Poderemos usar cada uma delas,
as quais representam a mesma coisa: a soma de x com y.
Exemplo 103 A multiplicacao e uma operacao binaria sobre M
nn
, o con-
junto das matrizes quadradas com n linhas e n colunas.
A multiplicacao e uma funcao dos pares ordenados das matrizes de tamanho
n n nas matrizes de tamanho n n.
mult(A, B) = AB
7.1.

ALGEBRAS 137
Escrevendo A, B lado a lado queremos signicar que A e B devem ser multiplicados
um com o outro nessa ordem. (Isto e chamado notacao por justaposic~ao.)
Exemplo 104 Com respeito ao conjunto uiversal U, o complemento e uma
operac ao unaria sobre (U), o conjunto potencia de U.
O complemento e denido por
complemento : conjunto potencia de U conjunto potencia de U
complemento(A) = A

= U A
Exemplo 105 A Concatenac~ao de cadeias(strings) e uma operacao sobre
A

, o conjunto de todas as cadeias nitas construdas sobre o alfabeto A.


Seja = a
1
a
2
...a
r
e = b
1
b
2
...b
s
cadeias em A

, de modo que cada a


i
e cada
b
i
esteja no alfabeto A.
A concatenac~ ao e uma funcao de A

em A

, com
concatenacao(, ) = seguido de
=
= a
1
a
2
...a
r
b
1
b
2
...b
s
Propriedades estruturais das operac oes binarias
Embora poderemos usar os mesmos nomes para operacoes sobre conjuntos diferentes, as
funcoes propriamente sao diferentes. A diferenca e uma consequencia imediata da mu-
danca no domnio. Pode acontecer que as propriedades estruturais sejam diferentes. Con-
sidere a multiplicac ao:
1. Para todos n umeros reais x, y:
xy = yx
2. Para algumas matrizes n n A, B:
AB ,= BA
Por exemplo,
_
1 2
1 2
_ _
1 1
2 2
_
,=
_
1 1
2 2
_ _
1 2
1 2
_
138 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
Em (1), a ordem das variaveis x e y nao e importante. Em (2) a ordem das matrizes
e importante. Dizemos que a multiplicacao denida sobre os reais e comutativa, mas a
multiplicacao denida sobre as matrizes n n nao e comutativa.
A propriedade comutativa e uma propriedade algebrica que pode pertencer a uma
opera cao sobre um conjunto. Para generalizar a discussao e enfatizar as propriedades
estruturais em vez das propriedades especcas sobre uma opera cao particular, vamos
denotar uma operacao arbitraria sobre um conjunto S pelo smbolo 2
a
. (Portanto, 2
a
e
usado no lugar de qualquer um dos smbolos , +, , , , , concatenacao, ou qualquer
outra opera cao.) Entao, poderemos denir as seguintes propriedades estruturais.
Denicao 28 (Comutativa) Uma operacao binaria, 2, sobre S, diz-se comutativa se e
somente se
x2y = y2x, para todo x, y S
Exemplo 106 :
A operacao de concatenacao nao e comutativa sobre cadeias. Pois se = car e
= pete, entao concatenacao(, ) = carpete e concatenacao(, ) = petecar.
Denicao 29 (Associativa) Uma operacao binaria, 2, sobre S, diz-se associativa se
e somente se
x2(y2z) = (x2y)2z, para todo x, y, z S
Se soubermos que uma operacao binaria, 2, e associativa, entao nao existe ambi-
guidade em escrever uma expressao como x2y2z, pois nao existe problema se ela for
interpretada como x2(y2z) ou como (x2y)2z.
Exemplo 107 A operacao de composicao de funcoes, denotada por , e as-
sociativa sobre funcoes, desde que essa composicao esteja denida:
Sejam f, g, h funcoes para as quais f(g(h(x))) esta denida para no mnimo
um valor de x. Entao:
f (g h) = f g) h
O ponto e que a composicao de funcoes diz respeito a uma aplicacao de uma
funcao seguida de uma aplicacao de uma segunda funcao.
7.1.

ALGEBRAS 139
x

fg
//
g

x
h
??
~
~
~
~
~
~
~
~
gh
//
x

f
==
{
{
{
{
{
{
{
{
{
Figura 7.1: Associatividade da composic ao de func oes
Para mostra que a composicao de funcoes e associativa, considere um elemento
x para o qual h(x) = x

, g(x

) = x

, f(x

) = x

estejam todos denidos.


Entao, g h(x) = g(h(x)) = g(x

) = x

e portanto f (g h)(x) = f(g h(x))) = f(x

) = x

.
Alem disso, h(x) = x

e (f g) h(x) = (f g)(x

) = f(g(x

)) = f(x

) = x

.
Por conseguinte, para todos os x

s nessas condicoes:
f (g h)(x) = (f g) h(x)
Isto e, para domnios adequados:
f (g h) = (f g) h
O argumento e ilustrado usando um grafo dirigido da gura 7.1, no qual, por
exemplo, se f mapeia x em x

, entao x, x

sao representados pelos vertices do


grafo e a aresta (x, x

) e rotulada por f.
Exemplo 108 : A mutiplicacao de matrizes e associativa.
A melhor maneira de mostrar que a multiplicacao de matrizes e associativa e
num curso de algebra linear, onde aprenderamos que matrizes correspondem
a certos tipos de funcoes(chamadas transformacoes lineares) e portanto, a
multiplicacao de matrizes e associativa pelo exemplo 108.
Exemplo 109 : A subtracao sobre o conjunto dos inteiros nao e associativa.
140 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
O contraexemplo 5 - (3 - 2) = 4 e (5 - 3) - 2 = 0 mostra que nao e verdade
que
x (y z) = (x y) z para todo x, y, z Z
Portanto, a subtracao nao e associativa sobre os inteiros.
Denicao 30 (Idempotente) Uma operacao binaria, 2, sobre S, diz-se idempotente se
e somente se
x2x = x para todo x S
Exemplo 110 A intersecao sobre um dado conjunto universal, U, e idempo-
tente.
X X = X, para todo conjunto X U
Exemplo 111 : A multiplicacao sobre o conjunto dos inteiros nao e idempotente.
As unicas solucoes de x x = x sao x = 0 ou x = 1.
Para que a multiplicacao sobre n umeros fosse idempotente seria necessario
restringir o conjunto de n umeros a 0, 1.
Denicao 31 (Identidade) Uma identidade para uma operacao binaria, 2, sobre S, e
um elemento e, digamos, em S, para o qual
x2e = x = e2, x para todo x S.
Um elemento, e, e chamado uma identidade, para 2 em S. Uma propriedade de
uma identidade e que se ela existe ela e unica.
Teorema 8 Se existir uma identidade, e, para a operacao 2, sobre o conjunto s, entao
ela e unica.
Prova:
Sejam e e f identidades para 2. Entao:
e = e2f = f
Isto e, e = f. Portanto, existe no maximo uma identidade.
7.1.

ALGEBRAS 141
De agora em diante podemos falar de a identidade para 2, sobre S.
Exemplo 112 A identidade para a multiplicacao de matrizes, sobre M
22
e
I =
_
1 0
0 1
_
Pela denicao de multiplicacao de matrizes temos:
_
a b
c d
__
1 0
0 1
_
=
_
a b
c d
_
=
_
1 0
0 1
__
a b
c d
_
.
Exemplo 113 A identidade para a adicao sobre R e 0, pois:
x R x + 0 = x = 0 +x.
Exemplo 114 A identidade para a uniao(), sobre o conjunto potencia de
A, e o conjunto vazio, .
Temos que para todo subconjunto X de A(isto e, X (A)) :
X = X = X.
Exemplo 115 A identidade para a concatenacao e a cadeia vazia .
concatenacao(, ) = = concatenacao(, ).
Se o conceito de cadeia vazia nao fosse permitido, entao nao existiria identi-
dade para a concatenacao sobre cadeias.
Denicao 32 (Inversa) Seja e a identidade para 2, sobre S. O elemento x
1
e o
inverso de x com respeito a 2, sobre S, se e somente se
x2x
1
= e = x
1
2x
Observe que cada x tem seu proprio inverso. Se 2 representa um tipo aditivo de
operacao e comum denotar a inversa de x por (x).
142 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
Teorema 9 Suponha que a operacao binaria, 2, sobre S, e associativa e que o elemento
identidade, e, existe. Se a e o inverso de x com respeito a 2, entao a inversa a e
unica(para cada x).
Prova:
Suponha que a e b sao ambos inversos de x, com respeito a 2, sobre S. Seja
e o elemento identidade para 2, sobre S. Entao:
a = a2e pois e e o elemento identidade
= a2(x2b) pois b e um inverso para x
= (a2x)2b pois 2e associativa
= e2b pois a e um inverso para x
= b pois ee a identidade
Portanto, existe no maxim um inverso de x, com respeito a 2, sobre S.
Teorema 10 Seja a um inverso de x, com respeito a operacao 2, sobre o conjunto S.
Entao, x e o inverso de a. Isto e, (x
1
)
1
= x.
Prova: Seja e a identidade para a operacao binaria 2, sobre S e a o inverso de x,
com respeito a 2.
Entao, x2a = e = a2x (denicao 32)
Mas a igualdade e simetrica.
Portanto, a2x = e = x2a
Portanto, pela denicao 32, x e o inverso de a.
Exemplo 116 Nao existe inverso de 0, com respeito a multiplicacao(), so-
bre os n umeros reais.
A identidade para a multiplicacao e 1. Mas, a equacao 0 x = 1 nao tem so-
lucao para x e portanto, nao existe inverso de 0, com respeito a multiplicacao.
Exemplo 117 Para cada elemento a (R 0) existe uma inversa de a,
com respeito a multiplicacao. A identidade para a multiplicao e 1. Para o
n umero real nao nulo, a, existe um n umero real
1
a
tal que
a
1
a
= 1 =
1
a
a
e portanto,
1
a
e o inverso de a, para cada a (R 0).
7.1.

ALGEBRAS 143
Exemplo 118 Existe um inverso para cada n umero real, com respeito a adicao,
sobre os n umeros reais.
A identidade para a adicao e 0 e para cada n umero real a existe um n umero
real (a) tal que
a + (a) = 0 = (a) +a.
Portanto, (a) e o inverso de a, com respeito adicao, para cada n umero real
a.
Exemplo 119 Nao existe inverso de uma cadeia nao vazia, com respeito a
concatenacao.
A identidade e , a cadeia vazia. Considere uma cadeia = a
1
a
2
,=
concatenacao(a
1
a
2
, x) = a
1
a
2
x
e a
1
a
2
x nao pode ser a cadeia vazia para qualquer escolha de x, pois a
1
a
2
e
nao vazia. Portanto, nao existe inverso de qualquer cadeia nao vazia, com
respeito a concatenacao.
Onde duas operacoes binarias forem denidas, sobre um conjunto S, pode existir uma
propriedade estrutural envolvendo ambas as operacoes.
Denicao 33 (Distributiva) A operacao 2 diz-se distributiva, com respeito a ope-
racao , sobre o conjunto S, se e somente se
x2(y z) = (x2y) (x2z)
Para todo x, y, z S.
Exemplo 120 A multiplicacao e distributiva, com respeito a adicao, sobre o
conjunto dos n umeros reais.
x, y, z R, x(y +z) = xy +xz.
Exemplo 121 A adiacao nao e distributiva, com relacao a multiplica cao,
sobre os n umeros reais.
Contraexemplo: 2 + (34) = 14, mas (2 + 3)(2 + 4) = 30.
144 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
Exemplo 122 A intersecao e distributiva, com relacao a uniao, sobre o con-
junto potencia de A.
Para todo X, Y, Z (A)
X (Y Z) = (X Y ) (X Z)
Exemplo 123 A uniao e distributiva, com respeito a intersecao, sobre o con-
junto potencia de A.
Para todo X, Y, Z (A)
X (Y Z) = (X Y ) (X Z)
Propriedades generalizadas
As propriedades associativa e distributiva podem ser generalizadas de modo que possam
ser aplicadas a mais de tres elementos.
Propriedade distributiva generalizada
Suponha que a operacao 2 e distributiva, com relacao a operacao , sobre S.
Entao, a propriedade distributiva generalizada, abaixo, tambem e verdadeira.
x2(y
1
... y
n
) = (x2y
1
) ... (x2y
n
)
Para todo x, y
1
, ..., y
n
S.
A prova e por inducao sobre n.
Propriedade associativa generalizada
Suponha que a operacao 2, sobre S, e associativa. Entao, para cada sequencia
x
1
, x
2
, ..., x
n
S, (n 3), com qualquer disposicao de parenteses(satisfazendo
corretamente a regra de parenteses) tem o mesmo valor que a seguinte ex-
pressao:
x
1
2x
2
...2x
n
.
A prova e por inducao sobre n.
7.1.

ALGEBRAS 145
Agora que denimos as propriedades estruturais basicas das opracoes sobre um con-
junto, e provamos alguns resultados associados, e o momento de denir uma algebra
formalmente.
Denicao 34 Uma algebra e um conjunto de objetos S, uma ou mais operacoes (2, , ...),
sobre S, satisfazendo algumas propriedades estruturais com relacao a essas operacoes.
Uma notacao para uma algebra e (S, 2, , ...). As possveis propriedades estruturais
sao dadas nas denic oes 28- 33.

Algebras com uma operacao


Analisaremos tres algebras que tem uma operacao binaria. Os semigrupos e monoides
sao usadas em linguagens formais e teoria dos automatos. Os grupos sao usados em
automatos e teoria do codigo.
Denicao 35 (Semigrupo) Um semigrupo, (S, 2), e um conjunto S, junto com uma
operacao binaria associativa, 2. sobre S.
Denicao 36 (Monoide) Um monoide, (M, 2), e um semigrupo no qual existe uma
identidade para a operacao 2, sobre M.
Denicao 37 (Grupo) Um grupo, (G, 2), e um monoide no qual cada elemento do
conjunto tem uma inverso.
Se a operacao for comutativa, entao o grupo diz-se comutativo ou Abeliano. O
inverso de cada elemento de um grupo e unico pelo teorema 9. A identidade para um
grupo e unica pelo teorema 8.
A palavra Abeliano e em homenagem ao matematico noruegues Niels Henrik Abel(1802-
1829) que usou o conceito de grupo na resolucao de equacoes algebricas por meio da
extracao de razes.
Exemplo 124 (A
+
, concatenacao) e um semigrupo.
1. A concatenacao e associativa. Portanto, a algebra e um semigrupo.
2. A
+
consiste do conjunto de todas as cadeias sobre o alfabeto A, mas nao
inclui a cadeia vazia. Portanto, nao existe identidade para esta algebra,
nao sendo ela mais do que um semigrupo.
Exemplo 125 (A

, concatenacao) e(um semigrupo e) monoide mas nao um


grupo.
146 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
1. A concatenacao e associativa. Portanto, a algebra e um semigrupo.
2. A

consiste do conjunto de todas as cadeias sobre o alfbeto A, incluindo


a cadeia vazia, . Mostramos anteriormente, no exemplo 115 que a
cadeia vazia, , e a identidade para esta algebra. Portanto, a algebra e
um monoide.
3. Nem todo elemento tem um inverso. Como um contraexmplo, considere
a cadeia = carro. Nao existe nenhuma cadeia x que concatenado com
carro resulte na cadeia vazia .
Portanto, a algebra nao e um grupo.
Exemplo 126 O conjunto dos inteiros formam um grupo com a adicao, (Z, +).
Os n umeros reais tambem formam um grupo com respeito a adicao, (R, +).
Cada um desses grupo e Abeliano.
Exemplo 127 Os inteiros sem o 0 formam um grupo com respeito a multi-
plicacao. A notacao para este grupo e (Z 0, ). Os n umeros reais sem o
0 formam um grupo com respeito a multiplicacao, (R 0, ).
Exemplo 128 O conjunto, P, de todas as permutacoes, sobre um conjunto
nito
A = a
1
, a
2
, ..., a
n

com a composicao de funcoes, e um grupo.


1. As permutacoes foram extensivamente discutidas em outra parte des-
sas notas. Naquela parte denimos uma permutacao como uma funcao.
Composicao de funcoes e uma operacao associativa. Portanto, P e um
semigrupo sob composicao de funcoes.
2. Uma permutacao
=
_
a
1
a
2
... a
n
a
1
a
2
... a
n
_
e a identidade, e consequentemente P e um monoide.
3. Cada permutacao tem uma inversa, pois uma permutacao e uma funcao
bijetiva(injetiva e sobrejetiva) de A sobre A. Para ver isto considere uma
permutacao . Suponha que mapeia a
i
em a
j
. Escrevemos : a
i

7.1.

ALGEBRAS 147
a
j
. Dena
1
: a
j
a
i
, e, devido que e bijetiva,
1
tambem esta
denida. E claramente,

1
=
Portanto,
1
e a inversa de , e assim P e um grupo sob a composicao
de funcoes.
Para n > 2 o grupo de permutacoes nao e Abeliano. O n umero de elementos no grupo
e nito(igual n!). Por isso dizemos que e um grupo em nito.
Grupos
Vale a pena um estudo mais profundo de grupos. Eles tem estruturas suciente para serem
interessantes e estao presentes como subestruturas em muitas algebras mais complexas.
Em vez de usarmos a denicao 37, que faz referencias a outras denicoes, de monoide e
semigrupo, e prefervel listar todas as proprieddes de um grupo em um unico lugar.
Propriedades do grupo (G, 2)
1. 2 e uma operacao binaria sobre G(ou G e fechado sob 2).
2. 2 e associativa.
3. Existe um e G, chamado a identidade com respeito a 2, tal que
e2x = x = x2e, para todo x G
4. para cada x G existe um elemento y G tal que
x2y = e = y2x
O elemento y e chamado o inverso de x, com respeito a operacao 2.
Se 2 e uma operacao do tipo multiplicacao, a inversa de x, usualmente, e escrito
x
1
. Se 2 e uma operacao do tipo adicao, a inversa de x, normalmente, e escrita
(x).
148 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
Exemplo 129 Dada a tabela para a operacao ,
a b
a a b
b b a
(a, b, ) e um grupo.
A operacao e fechada sobre o conjunto.
A operacao e associativa. Por exemplo:
a (a b) = a b = b e (a a) b = a b = b
Portanto, a (a b) = (a a) b.
Oito provas dessa natureza, cobrindo todas as sequencia de a

s e b

s, sao ne-
cessarias e sucientes para estabelecer a associatividade do grupo.
A identidade e a.
Cada elemento no conjunto tem um inverso, a
1
= a, b
1
= b.
Como na arimetica usual, as aplicacoes repetidas de uma operacao, p, podem ser
representadas convenientemente pela notacao p
m
, onde p pertence a um grupo (G, 2) e
m e um inteiro nao negativo.
Denicao 38 (Exponenciacao) Para p (G, 2), um grupo com identidade e, e um
inteiro m 0:
p
m
=
_
e se m = 0
p
m1
2p se m 0
Se 2 e um operador do tipo aditivo , entao, usualmente, escrevemos mp, em vez de
p
m
.
Exemplo 130 p
3
= p
2
2p = p2p2p.
Os parenteses podem ser omitidos uma vez que 2 e associativa.
Exemplo 131 p
1
= e2p = p.
7.1.

ALGEBRAS 149
Denicao 39 (Exponenciacao nao negativa) Para p (G, 2) um grupo, com m < 0
inteiro:
p
m
= (p
m
)
1
O valor de p
m
e dado pela denicao 38. A notac ao ( )
1
indica a inversa do
elemento em parenteses, com respeito `a operacao 2, sobre G.
Teorema 11 Se p for um elemento do grupo (G, 2) e m, n sao inteiros entao:
1. (p
m
)
1
= (p
1
)
m
2. p
m
2p
n
= p
m+n
3. (p
m
)
n
= p
mn
Prova: Cada parte deste teorema pode ser provada pela propriedade associtiva(generalizada)
de 2 e as denicoes 38, 39 e o teorema 10.
Os resultados desse teorema podem ser facilmente lembrados pois eles sao identicos
em aparencia aos resultados para a exponenciacao sobre os n umeros reais.
Teorema 12 Para p no grupo (G, 2):
p
m
2p
n
= p
n
2p
m
, para todo m, n Z.
Prova: Do teorema 11, segunda parte, e a propriedade comutativa da adicao, sobre
Z:
p
m
2p
n
= p
m+n
= p
n+m
= p
n
2p
m
Para todos os inteiros m, n.
Teorema 13 Seja p um elemento de um grupo nito (G, 2) e n o n umero de elementos
de G, com n > 1. Entao, existe um s > 0 tal que p
s
= e, com e a identidade para 2,
sobre S e s n.
Prova:
150 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
A sequencia p, p
2
, ..., p
n
contem n + 1 elementos cada um dos quais esta em
G(pela propriedade de fechamento).
G tem n elementos, portanto(pela princpio da casa de pombos) dois dos ele-
mentos na sequencia devem ser o mesmo.
Suponha p = p
b
, com 0 < a < b.
Seja s = b a (a > 0).
Portanto, p
s
p
ba
= p
b
2p
a
teorema 11, parte 2
= p
b
2(p
a
)
1
denicao 39
= p
b
2(p
b
)
1
argumento acima
= e denicao 32
Alem disso, 0 < a < b n + 1, portanto s = b a n e o teorema esta
provado.
Observacao 3 : Se n = 1 no teorema acima, entao s = 0, mas o resultado nao e
interessante.
Teorema 14 (Grupo cclico) Seja p um elemento de grupo (S, 2), com no mnimo dois
elementos, e suponha que s e o menor inteiro positivo tal que p
s
= e, onde e e a identidade
para 2, sobre S. Entao,
C = e, p, p
2
, ..., p
s1

com a operacao 2 e um grupo Abeliano. (C, 2) e chamado grupo cclico e p e


chamado o gerador do grupo.
Prova:
A existencia de s e garantida pelo teorema 13.
1. A operacao 2, sobre S e associativa. Cada elemento em C tambem esta
em S. Portanto, 2, sobre C e associativa.
2. Existe uma identidade, e, em C.
3. Cada elemento de C tem um inverso.
Para 0 m s, p
m
2p
sm
= p
m+sm
= e = p
sm
2,
Pelo teorema 11, parte 2 e a dencao 38,
Portanto, p
sm
e o inverso de p
m
.
4. O grupo e Abeliano pelo teorema 12.
7.1.

ALGEBRAS 151
Colorario: Se S e nito e [S[ = n dizemos que o grupo (S, 2) e um grupo nito de
ordem n. Dos teoremas 12 e 13 todo grupo nito ou e um grup cclico ou contem um
grupo ccico.
Exemplo 132 (e, a, b, +) com a tabela de operacao
+ e a b
e e a b
a a b e
b b e a
e um grupo cclico.
Da tabela, a
2
= b, e a
3
= a
2
+a = b +a = e
Ou usando a notacao aditiva, 3a = (a +a) +a = b +a = e.
Pelo teorema 13, (e, a, a
2
, +) e um grupo cclico com gerador a.
Pela mesma razao, b
3
= e, e portanto, o mesmo grupo pode ser escrito (e, b, b
2
, +),
sendo, agora, b o gerador do grupo.
Exemplo 133 Dena:
e =
_
1 2 3
1 2 3
_
, a =
_
1 2 3
2 3 1
_
, b =
_
1 2 3
3 1 2
_
Entao, o grupo de permutacoes (e, a, b, tem a tabela de operacao identica
que o exemplo anterior. A coneccao entre esses grupos e muito mais forte
que o fato dos os elementos do primeiro podem ser mapeados um-a-um sobre
os elementos do segundo. Dizemos que os grupos sao isomorficos(denicao
abaixo).
Exemplo 134 (Z
m
, +) e um grupo cclico.
Este e um resultado geral correspondendo ao exemplo 132.
Denicao 40 (Isomorsmo) Dois grupos sao ditos isomorficos se e somente se existe
uma funcao bijetiva mapeando os elementos de um sobre os elementos do outro, com a
propriedade de que a funcao mapeia o produto de quaisquer dois elementos em um grupo
no produto das imagens daqueles elementos no outro grupo.
Em outras palavras, sejam (G
1
, 2) e (G
2
, ) grupos e uma funcao mapeando G
1
sobre G
2
. Entao, para todo x, y G
1
:
(x2y) = (x) (y).
A funcao e chamada um isomorfismo do grupo G
1
sobre o grupo G
2
.
152 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
7.2 Estruturas ordenadas
Anteriormente, denimos propriedades de operacoes(comutatividade, associatividade, e
assim por diante) e identicamos diferentes algebras(semigrupos, monoides e grupos) pelas
propriedades das operac oes denidas sobre elas.
Nesta secao analisaremos as estruturas nas quais e importante uma relacao de ordem
parcial.
Conjuntos parcialmente ordenados e reticulados
Em outra parte destas notas, denimos uma relacao de ordem parcial como sendo uma
relacao reexiva, antisimetrica e transitiva. Um conjunto sobre o qual esta denida uma
relacao de ordem parcial e chamado um conjunto parcialmente ordenado. (Alguns
autores contraem esse nome para poset, as iniciais em ingles, partially ordered set.
Para simplicar, usaremos sempre essa abreviacao).
Denicao 41 (Poset) Um conjunto parcialmente ordenado(poset), (S, ), e um con-
junto S no qual esta denida uma ordem parcial, .
A notacao (S, ) pretende diferenciar um poset de uma algebra. A letra grega e usada
para indicar uma relacao de ordem parcial e nao deve ser confundida com um smbolo de
operacao. Alguns autores usam o smbolo _ no lugar de .
Exemplo 135 Seja S = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 e a relacao divide, que
signica divide exatamente sem nenhum resto. Por exemplo, 22, 20, 26,
mas nao 42 e tambem nao 57.
A relacao divide e uma relacao de ordem parcial porque:
1. aa para todo a S;
2. se ab e ba, entao a = b;
3. se ab e bc, entao ac;
Divide nao e uma relacao de ordem total sobre esse conjunto porque, por exem-
plo, nem 57 e nem 75.
Exemplo 136 Seja S = 1, 2, 3, 5, 6, 10, 15, 30, e a relacao divide sobre
S. A relacao nao e uma ordem total sobre S porque, por exemplo, nem 23
nem 32.
Exemplo 137 Seja S = o conjunto potencia dea, b, c, e = e um subconjunto de
e ( e a relacao ).
A relacao e uma ordem parcial porque:
7.2. ESTRUTURAS ORDENADAS 153
1. A A, para todo A em S;
2. se A B e B A, entao A = B em S.
3. se A B e B C, entao A C em S.
Mas, nao e uma ordem total porque, por exemplo,
a, b a, c e a, c a, b
Como observamos, em nenhum dos exemplos acima a relacao e uma ordem total.
Entretanto, cada ordem parcial contem algumas sequencias que sao totalmente ordenadas.
Por exemplo, as sequencias 1,2,4,8 e 1,2,10, no exemplo 135 sao totalmente ordenadas.
Nessas sequencias, escolhendo dois elementos da mesma sequencia, um elemento divide
o outro. Se os elementos sao o mesmo, sabemos que um n umero divide a si proprio. Se
eles sao diferentes, aquele da esquerda divide o da direita.
No exemplo 136: 1,2,6,30 e 1,2,10,30 sao sequencias totalmente ordenadas.
No exemplo 137: , a, a, b, a, b, c e , a, a, c, a, b, c sao sequencias total-
mente ordenadas.
As sequencias podem ser ilustradas pelo diagrama de Hasse (cujo denominacao e uma
homenagem ao matematico alemao Helmut Hasse (1898-1979). O diagrama de Hasse, pa-
ra um conjunto parcialmente ordenado, (S, ), e um grafo no qual os vertices representam
os elementos de S e dois vertices a, b sao ligados por uma aresta se ab, exceto que:
1. como sabemos que e reexiva nao e considerado necessario o laco correspondente
a aa, e
2. como sabemos que e transitiva nao e considerado necessario desenhar a aresta
para ac se ab e bc estiverem includos.
Tradicionalmente os grafos eram desenhados sem setas e com o menor elemento na
parte mais baixa(bottom). Aqui, ( 7.2) ele foi desenhado com o menor elemento na
esquerda e crescendo para `a direita.
No exemplo 135, 1 divide 2, 2 divide 4, 4 divide 8, portanto, 1,2,4,8, pode ser visto co-
mo uma sequencia crescente, com respeito a relacao divide. O correspondente caminho
no diagrama de Hasse( 7.2) vai(mais ou menos) da esquerda para `a direita.
154 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
7 4
~
~
~
~
~
~
~
~
8
2

6
~
~
~
~
~
~
~
~
1
a
a
a
a
a
a
a
3 9
~
~
~
~
~
~
~
~
5 10
Figura 7.2: Diagrama de Hasse para o exemplo 135
2
d
d
d
d
d
d
d
d

10
f
f
f
f
f
f
f
f
1
a
a
a
a
a
a
a
5
~
~
~
~
~
~
~
~
d
d
d
d
d
d
d
d
6
~
~
~
~
~
~
~
~
30
|
|
|
|
|
|
|
|
3 15
Figura 7.3: 136
7.2. ESTRUTURAS ORDENADAS 155
Denicao 42 (

Inmo(inf )) Seja (S, ) um poset. Para quaisquer a, b S um elemento


i S, com a propriedade seguinte, e chamado um nfimo para a, b.
1. ia e ib;
2. x S[(xa (xb)] xi;;
Exemplo 138 Da gura 7.2, pelo exemplo 135, pode ser visto que
inf(4, 10) = 2; inf(2, 5) = 1; inf(6, 3) = 3; inf(10, 10) = 10
Teorema 15 Se (S, ) e um poset e a, b S, entao (a, b) tem no maximo um nmo.
Prova:
Suponha que x, y S sao nmos de a, b.
Entao, pela denicao 42, parte 1 : xa, xb e ya, yb
parte 2 : xy e yx
Portanto, pela antisimetria, x = y.
Denicao 43 (Supremo(sup)) Seja (S, ) um poset. Para quaisquer a, b S, um ele-
mento s, com as propridades seguintes, e chamado um supremo para a, b.
1. as bs;
2. x S[(ax) (bx)] sx
Exemplo 139 Da gura 7.2, pelo exemplo 135, podemos ver que
sup(6, 10) nao esta denido; sup(2, 5) = 10; sup(6, 3) = 6; sup(7, 7) = 7.
Exemplo 140 Da gura 7.3, pelo o exemplo 136, podemos ver que
sup(6, 10) = 30; sup(2, 5) = 10.
Teorema 16 Se (S, ) e um poset e a, b S, entao (a, b) tem no maximo um supremo.
Prova:
156 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
Suponha que x, y S sao supremos de a, b.
Pela denicao 43 e um argumento similar ao do teorema 15,
xy e yx
Pela antisimetria, x = y.
Ambos, o supremo e o nmo mapeiam pares de elementos em S num unico elemento
de S. Se o supremo e o nmo estivessem denidos para todos os pares de elementos em
S, eles poderiam ser vistos como operacoes binarias, sobre S. Neste caso, vamos ter um
smbolo de operador inxo para cada um deles.
Notacao, se sup e nf sao operacoes binarias sobre S, entao:
sup(a, b) = a . b
inf(a, b) = a b
A estrutura para a qual todo par de elementos tem um supremo e umnmo e chamado
um reticulado.
Denicao 44 (Reticulado) Um reticulado e um poset, (L, ),, no qual todo par de ele-
mentos, em L, tem um supremo e um nmo.
Um reticulado (L, ) tem duas operacoes binarias denidas sobre ele, e portanto, po-
demos construir a partir dele a algebra (L, ., ).
Exemplo 141 1. O poset do exemplo 135 nao e um reticulado porque
nem todo par de elementos tem um supremo e um nmo. (Por exemplo,
sup(6, 10) nao esta denido sobre o conjunto.)
2. O poset do exemplo 136 com a relacao de ordem paracial divide() e
um reticulado. As operacoes binarias sao o maximo divisor comum()
e mnimo m ultiplo comum().
3. O poset do exemplo 137 com a relacao e um subconjunto de() e um
reticulado. As operacoes binarias sao intersecao() e a uniao().
O poset do exemplo 135, (S, ), como observamos acima, nao e um reticulado. Vimos
que o par (6, 10) nao tinha supremos em S. Poderamos aumentar S incluindo 30, mas,
entao teramos de incluir outros elementos. Se S fosse aumentado ate o conjunto dos
inteiros, Z, entao a estrutura seria um reticulado. Cada par de inteiros tem um supremo
e um nmo em Z, e portanto (S, ) seria um reticulado. Mas, o conjunto dos inteiros e
ilimitido superiormente e inferiormente e, desse modo nao existe o maior elemento nem
o menor elemento.
7.2. ESTRUTURAS ORDENADAS 157
Denicao 45 (Menor elemento(bottom), maior elemento(topo)) Seja (S, ) um poset.
O elemento m S e chamado o maior elemento ou topo ou maximo se para todo a S,
am. O elemento b S e chamado o mmimo ou bottom ou o menor elemento se para
todo a S, ba.
No exemplo 135, o menor elemento e 1, mais nao existe topo.
No exemplo 136, o topo e 30 e o mnimo e 1.
No exemplo 137, o topo e a, b, c e o bottom .

Algebras booleanas
A seguir consideraremos uma estrutura, chamada algebra booleana em homenagem a Geor-
ge Boole. Boole publicou An Investigation of the Laws of Thought
1
, em 1854, no qual ele
estabeleceu uma algebra da logica deste tipo. As algebras booleanas sao usadas no proces-
samento de informac oes e na teoria do chaveamente(ou circuitos digitais.)
Uma algebra booleana(tambem chamaremos algebra de boole) nao precisa que nela
esteja denida uma relacao de ordem. Incluimo-la, aqui, apos reticulado, devido a sua
associacao com esta estrutura.
Denicao 46 (

Algebra booleana) Uma algebra booleana e uma algebra (B, +, ., , 0, 1),


onde + e . sao operacoes binarias sobre B que sao comutativas, associativas, e idempo-
tentes. Cada operacao binaria e distributiva, uma em relacao a outra. A constante 0 e a
identidade para + e 1 a identidade para . A operacao -, sobre B, e uma operacao unaria
e satisfaz a propriedade
a +a = 1 e a.a = 0 a B
O conjunto B deve conter no mnimo dois elementos 0, 1. Os smbolos podem ser con-
siderados como operacoes nularias mapeando do conjunto vazio para 0, 1, em B. Desta
maneira, o esquema notacional para uma algebra e preservado. A seguir apresentaremos
exemplos de algebras booleanas.
Exemplo 142 (0, 1, +, ., , 0, 1) com as seguintes tabelas de operacoes
+ 0 1
0 0 1
1 1 0
0 1
0 0 0
1 0 1
0 = 1.1 = 0
1
Uma Investigacao das leis do pensamento, literalmente.
158 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
Exemplo 143 (conjunto potencia deA, , , complemento sobre conjuntos, , A),
e uma algebra booleana.
A estrutura no exemplo 137 e uma algebra booleana desse tipo com A =
a, b.c.
Exemplo 144 (S, +, ., , 1, 30), onde S = 1, 2, 3, 5, 6, 10, 15, 30, a + b de-
nota o mnimo m ultiplo comum de a e b, a.b denota o maximo divisor de
a e b, e x denota o n umero
30
x
, e uma algebra booleana.
O teorema seguinte fornece as propriedade gerais que devem vericar em toda algebra
booleana. Elas podem ser provadas usando a denicao 46.
Teorema 17 (Complemento) Para todo x em (B, +, ., , 0, 1), uma algebra booleana
x = x
Teorema 18 (Absorcao) Para todo x, y em (B, +, ., , 0, 1), um algebra booleana
x.(x +y) = x, x + (x.y) = x
Teorema 19 (De Morgan) Para todo x, y em (B, +, ., , 0, 1), uma algebra booleana
(x +y) = x +y, (x.y) = x.y

Algebras booleanas e reticulados


Nesta secao abordaremos a construcao de uma algebra booleana a partir de um reticulado
e reciprocamente a construcao de um reticulado a partir de algebra booleana,
Iniciando de um reticulado
Ja observamos que para um reticulado, (L, ), o nmo() e o supremo(.) sao operacoes
binarias sobre L. Podemos provar que essas operacoes, sobre L, sao comutativas, asso-
ciativas e idempotentes.
Se, alem disso, cada operacao for distributiva com relacao a outra, o reticulado e um
reticulado distributivo.
Se o reticulado tiver um topo(1) e um bottom(0), entao uma operacao unaria, complemento(

),
pode ser denida, sobre L, de tal modo que para cada elemento a L existe um elemento
a

em L, tal que
7.2. ESTRUTURAS ORDENADAS 159
a a

= 0 a . a

= 1
(isto e, inf(a, a

) = 0 e sup(a, a

) = 1. Um reticulado com um bottom e um to-


po e uma operacao de complemento, sobre o conjunto, e chamado um reticulado com
complemento.
Agora, se (L, ) for um reticulado distributivo com complemento, com bottom, 0, e
topo, 1, podemos mostrar que (L, ., ,

, 0, 1) e uma algebra booleana.


Os exemplos 143 e 144 do conjunto de algebras booleanas foram derivados dessa
maneira dos reticulados dos exemplos 136 e 137.
Iniciando de uma algebra booleana
Seja (S, +, ., , 0, 1) uma algebra booleana.
Para a, b S, dena a _ b se e somente se a.b = a.
A relacao _ assim denida e uma ordem parcial.
Prova:
Devemos provar as proposicoes na algebra booleana que se traduzem nas pro-
priedades reexiva, antisimetric e transitiva da relacao denida acima.
1. a.a = a (. e idempotente). Portanto, pela denicao, a _ a e _ e
reexiva.
2. Se a.b = a e b.a = b, entao a = b (pois . e comutativa). Logo, por
denicao, se a _ n e b _ c, entao a = b e

_

e antisimetrica.
3. Se a.b = a e b.c = b
a.(b.c) = a.b (substituinddo b.c por b)
entao (a.b).c = a.b (associativa)
a.c = a (substituindo a.b por a)
Portanto, pela denicao, se a _ b e b _ c, entao a _ c e _ e transitiva.
A denicao acima de _ induziu uma ordem parcial sobre S.
Para provar que (S, _) e um reticulado e necessario mostrar que para todo a, b S,
ambos o sup(a, b) e inf(a, b) existem. O proximo teorema assegura que eles, de fato,
existem, provendo uma expressao para cada.
Teorema 20 (inf, sup) Seja (S, _) um poset induzido sobre a algebra booleana (S, +, ., , 0, 1)
pela rela cao _, denida por a _ b se e somente se a.b = a.
Entao a, b S, inf e sup existem, denidos por
160 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
1. inf(a, b) = a.b
2. sup(a, b) = a +b
e (S, _) e um reticulado.
Prova:
1. (inf ) Pelas propriedades associativa, comutativa e idempotente de .
(a.b).a = a(b.a) = a.(a.b) = (a.a).b = (a.b)
e
(a.b).b = a(b.b) = (a.b)
Por denicao de _
(a.b) _ a (a.b) _ b
Portanto, a primeira parte da denicao 42 esta satisfeita.
Agora, suponha que x _ a e x _ b.
Pela denicao de _, x.a = x e x.b = x e, portanto, x.a = x.b.
Precisamos mostrar que x _ a.b.
Agora, x.(a.b) = (x.a).b = (x.b).b = x.(b.b) = x.b = x
e, assim, x _ a.b.
Logo, a segunda parte da denicao 42 esta satisfeita, e
a.b = inf(a, b)
2. (sup) Esta parte e similar a parte 1, usando +, em lugar de ., a denicao
43, em lugar da denicao 42.
Teorema 21 O reticulado (S, _) tem como menor elemento 0, e como maior elemento
1.
Prova:
7.3. CORPOS FINITOS 161
1. O menor elemento e 0.
Pela propriedade do complemento e pelas propriedades comutativa, asso-
ciativa e idenpotente de ., para todo a S,
0.a = (a.a).a = a.(a.a) = (a.a).a = a.a = 0
Portanto, por denicao, 0 _ a a S, e 0 e o menor elemento.
2. O maior elemento e 1. Analogo ao item 1.
As duas outras proposicoes acerca de (S, _) pode ser provada, mas e deixada
como exerccios.
1. (S, _) e um reticulado distributivo.
2. (S, _) e um reticulado com complemento.
7.3 Corpos nitos
Um corpo e uma algebra na qual as quatro operacoes binarias, adicao, subtracao, multi-
plicacao e divisao estao denidas sobre o conjunto. Uma outra maneira de descrever a
estrutura de corpo e deni-la como um grupo (S, +), junto com o grupo (S, ), onde a
operacao binaria e distributiva em relacao a +.
Denicao 47 (Corpo) Se (S, +) e um grupo, (S 0, ) e grupo e e distributiva,
com rela cao a +, entao a algebra (S, +, ) e chamada um corpo.
Os exemplos obvios de corpos sao os sistemas de n umeros reais, R e de n umeros ra-
cionais, Q.
2
Sabemos que R e Q tem, denidas sobre eles, a relacao de ordem (total),
mas nao existe nada na denicao de um corpo que de origem a essa propriedade. Devem
ser impostas algumas propriedades adicionais, sobre um corpo, para que ele venha a ter
uma rela cao de ordem. A seguir apresentaremos a maneira de fazer isso.
Denicao 48 (Corpo ordenado) Um corpo, com conjunto base F, diz-se ordenado se ele
contem um subconjunto nao vazio, P(os positivos) que e fechado com respeito as operacoes
de adicao e multiplicacao do corpo e P, 0, F P e uma particao de F na qual cada
celula e nao vazia.
A relacao de ordem parcial e entao denida por
x, y F, x y se e somente se y x P 0
2
Mas,n ao Z, pois (Z 0, ) nao e um grupo.
162 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
Embora seja possvel derivar todas as proprieda mais usuais da relacao de ordem ,
a partir da denicao, isso nao nos mostraria nada de novo. O proposito aqui e meramente
mostrar que um corpo nao e necessariamente ordenado. A seguir sao exemplos de corpos
nitos, nenhum dos quais e ordenado.
Exemplo 145 Seja S = 0, 1. Dena a adicao e a multiplicacao pelas
tabelas:
+ 0 1
0 0 1
1 1 0
0 1
0 0 0
1 0 1
Entao, (S, +, ) e um corpo.
Exemplo 146 Seja S = 0, 1, 2. Dena a adicao e a multiplicacao pelas
tabelas:
+ 0 1 2
0 0 1 2
1 1 2 0
2 2 0 1
0 1 2
0 0 0 0
1 0 1 2
2 0 2 1
Entao, (S, +, ) e um corpo.
O corpo no exemplo 146 nao e ordenado. Observe que 1+2 = 0, e portanto, o inverso
de 1, com respeito a adicao, e 2, isto e, (-1) = 2. Devemos tentar enquadrar a denicao
de um corpo ordenado denindo P = 1. Entao, 1, 0 e 2 e uma particao de S.
Mas, P nao e fechado sob a adicao, pelo exemplo 1 + 1 = 2.
Exemplo 147 O conjunto dos resduos concruentes modulo m, com m pri-
mo, com a adicao e a multiplicao modulo m, e um corpo.
7.4 EXERC

ICIOS
1. Mostre que a divisao sobre o conjunto dos n umeros reais nao e associativa.
2. Dar um exemplo para a assertiva a concatenac ao e associativa sobre A

.
3. Que signica a assertiva A intersecao e idempotente sobre o conjunto das potencias
de A?
7.4. EXERC

ICIOS 163
4. Seja L = 1, 3, 5, 7, 15, 21, 35, 105 e a relacao divide sobre L. Entao, (L, ) e
um poset. Desenhe o diagrama de Hasse para (L, ). Encontre sup(3, 7), sup(15, 21)
e o inf(7, 21). Encontre o bottom e o topo do conjunto. Encontre uma operacao
complemento para o reticulado.
5. Seja B = t, f.
Considere a algebra (B, , ).
(a) Estabeleca em smbolos o que signica cada um dos seguintes:
(i) e comutativa.
(ii) e associativa.
(iii) e distributiva dobre .
(b) tem uma identidade? Se for o caso, qual?
(c) tem uma identidade? Se for o caso qual?
(d) De uma razao porque (B, ) nao e um grupo.
6. A adicao sobre M
22
, o conjunto das matrizes 2 por 2 com entras reais, e denida
por
_
a
11
a
12
a
21
a
22
_
+
_
b
11
b
12
b
21
b
22
_
=
_
a
11
+b
11
a
12
+b
12
a
21
+b
21
a
22
+b
22
_
Considere a algebra (M
22
, +).
(a) qual e identidade para a adicao?
(b) Cada matriz em (M
22
, +) tem uma inversa?
(c) A adicao e comutativa?
(d) A adicao e associativa?
(e) A adicao e idempotente?
(f) (M
22
, +) e um semigrupo? um monoide? um grupo? um grupo Abeliano?
7. Quais propriedades estruturais se vericam para a operacao conc vista como uma
operac ao sobre listas?
8. Aqui esta uma tabela de multiplicacao para a algebra (A, ), com A = a, b, c.
164 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
a b c
a a a b
b a b c
c b c b
(a) * e um isomorsmo?
(b) * e associativa?
(c) * e idempotente?
(d) * tem identidade?
(e) Cada x A tem um unico inverso?
9. Suponha que a operacao 2, sobre S, e associativa e seja a, b, c, d, e S. Escreva
todas as expressoes com cinco termos iguais a
(a2(b2(c2(d2e)))).
10. Use o fato de que a operacao sobre os n umeros reais e associativa para provar que
para a, b, c, d, e, f R
(a b) ((c d) (e f)) = a (b (c (d (e f))))
11. Prove que um grupo clico e abeliano.
12. Na prova do teorema 11, parte 1, devemos mostrar que
p
m
2(p
1
)
m
= e = (p
1
)
m
2p
m
Pode ser construda uma prova assumindo que m 0, para o caso 1 e m < 0, para
o caso 2. O caso e feito usando a propriedade associativa generalizada. Uma prova
do caso 2 usa a denicao 29, o teorema 10 e a denicao 32. Faca a prova do
caso 2.
13. Dado o conjunto A, ((A), ) e um reticulado. Qual e o signicado da assertiva:
, sobre (A) e associativa? A assertiva e verdadeira?
14. Seja (L, ) um reticulado. Prove:
7.4. EXERC

ICIOS 165
(a) sup(.), sobre L, e comutativa.
(b) inf(), sobre L, e idempotente.
15. Seja S o conjunto 1, 2, 3, 5, 6, 10, 15, 30. Suponha que a + b denota o mnimo
m ultiplo comum de a, b, a.b denota o maximo divisor comum de a, b e x denota o
n umero
30
x
. Entao, (S, +, ., , 1, 30) e uma algebra booleana.
Prove o seguinte:
(a) A identidade para + e 1.
(b) a identidade para . e 30.
(c) A opracao mais + e idempotente.
(d) x S x +x = 30.
(e) x.x = 1.
16. Prove que para todo x numa algebra booleana (B, +, ., , 0, 1)
(a) x.0 = 0 (b) x + 1 = 1
17. O teorema 18(Absorcao) estabelece:
Para todos x, y, z numa algebra booleana (B, +, ., , 0, 1)
(a) x.(x +y) = x, (b)x + (x.y) = x
Prove a parte (a).
18. O teorema 19(De Morgan) estabelece que:
Para todos x, y, z numa algebra booleana (B, +, ., , 0, 1)
(a) (x.y) = x +y, (b) (x +y) = x +y
Prove a parte (a).
19. Seja (S, +, ., , 0, 1) uma algebra booleana.
Dena a relacao _, sobre S, por
a _ b se e somente se a +b = a
Prove que a relacao assim denida induz uma ordem parcial sobre S.
166 CAP

ITULO 7. ESTRUTURAS ALG

EBRICAS
20. Seja (S, _) o reticulado induzido sobre a algebra booleana (S, +, ., , 0, 1) pela re-
lacao _ denida por
a _ b se e somente se a.b = a
Prove:
(a) sup(a, b) = a +b, a, b S
(b) 1 e o topo de (S, _).
Captulo 8
Grafos e arvores
8.1 Introducao
Muitas das estruturas, em computacao, podem ser modeladas por grafos. Por isso, neste
captulo, introduziremos a linguagem dos grafos e analizaremos o problema da construcao
de uma arvore geradora para um grafo conexo. Para resolver muitos dos problemas em
grafos e preciso selecionar um algoritmo de arvore geradora. Mostraremos que a relacao
conectado e uma relac ao de equivalencia no conjunto dos vertices de um grafo.
Um tema importante neste captulo diz respeito a relacao entre guras(geometricas)
e as estruturas algebricas, muito complexas para serem desenhadas de forma util. As -
guras sao importantes para suscitar novas ideias e possibilitar o entendimento das ideias
dos outros. Mas para serem efetivas, as guras precisam ser traduzidas em estruturas
algebricas, de modo que os grandes problemas possam ser manipulados pelos computado-
res. Os matematicos dao ao nome grafo um signicado especial. Esta palavra descreve
um conjunto de vertices (ou nos), alguns ou todas dos quais podem ser conectados por
arestas(ou arcos). Os grafos sao usados para modelar muitas situacoes, como, por exem-
plo, redes de estradas, redes de computadores, horarios de trabalho, estruturas de dados e
muitas outras.
8.2 Grafos
Um grafo e uma estrutura discreta que consiste de um conjunto de vertices em que alguns
deles ou todos podem ser ligados por arestas. A gura 8.1 apresenta um grafo no qual
os vertices(tambem chamados nos) sao rotulados com v
1
, v
2
, v
3
, v
4
e as arestas(tambem
chamadas de arcos) a, b, c, d, e. Um vetice e representado pictoricamente por um pequeno
crculo, , e as arestas por uma linha ou uma curva lingando-os.
167
168 CAP

ITULO 8. GRAFOS E

ARVORES
Figura 8.1: Um grafo
A aresta a diz-se incidente com o vetice v
1
e com o vertice v
2
. Os vertices v
1
e v
2
sao ditos adjacentes porque eles estao ligados por uma aresta. As arestas c e d sao ditas
arestas m ultiplas porque elas sao incidentes com os mesmos pares de vertices v
3
, v
2
. A
aresta a e chamada um laco porque ela e incidente com exatamente um vertice. Um grafo
que nao possui arestas m ultiplas ou lacos e chamado um grafo simples. Se for permitidas
arestas m ultiplas o grafo sera chamado multigrafo. Um pseudografo e um grafo onde sao
permitidos lacos e arestas m ultiplas. Chamaremos grafo geral aquele onde sao permitidos
todas as posssibilidades. Autores diferentes, em geral, usam nomes diferentes para esses
grafos.
Denicao 49 (Grafo) Um grafo, G, e um conjunto, V (G), de objetos, chamados
vertices, junto com um multiconjunto,
1
E(G), de arestas. Cada elemento de E e um
multiconjunto de dois vertices de V . Se V = o grafo sera chamado grafo nulo.
Um grafo G(V, E, i) pode ser classicado usando a funcao de incidencia
i : E u, v[u, v V
onde:
1. Se i for injetiva e u ,= v, entao G e um grafo simples. Neste caso, cada aresta
e identicada, sem ambiguidade, pelos vertices com os quais ela e incidente(neste
caso os multiconjuntos sao conjuntos);
2. Se i for muitos-um(nao injetiva) e u ,= v, entao G e um multigrafo. Neste caso,
sao possveis arestas m ultiplas;
3. Se i for muitos-um, com nenhuma exigencia de que u e v sejam distintos, entao G
e chamado um pseudografo ou um grafo geral. As arestas m ultiplas e os lacos sao
permitidos.
1
Um multiconjunto e uma extensao do conceito de conjunto, onde se permite que um elemento se
repita varias vezes, por exemplo, 2, 2, 3, 1 e um multiconjunto.
8.2. GRAFOS 169
Figura 8.2: Grafo para o exemplo 1
Exemplo 148 Suponha que V (G) = v
1
, v
2
, v
3
, E(G) = e
1
, e
2
e
i(e
1
) v
2
, v
1
, i(e
2
) v
1
, v
3

Entao, G(V, E, i) e um grafo simples com tres vertices e duas arestas. Po-
demos desenhar a gura 8.2 para representar esse grafo. Os vertices v
1
e
v
2
sao adjacentes, mas v
2
e v
3
nao sao. A aresta e
1
e incidente com v
2
e
v
3
. Como o grafo e um grafo simples, as arestas podem ser descritas como
2 subconjuntos de vertices sem ambiguidades. Por exemplo, e
1
= v
2
, v
1
.
As arestas sao desenhadas como segmentos de reta. Entretanto, as arestas
podem ser desenhadas como linhas curvas, por quem assim o desejar.
Denicao 50 (Digrafo) Se a funcao de inciencia mapeia em pares ordenados de vertices,
o grafo diz-se um grafo dirigido ou digrafo. Nesse caso, e comum colocar setas em vez de
arestas no desenho do grafo, para indicar o sentido.
Denicao 51 (Subgrafo) Um subgrafo de um grafo e um grafo cujos vertices formam
um subconjunto, S, de V (G) e cujas arestas contem somente vertices de S, que, por sua
vez, e um subconjunto de E(G).
`
As vezes, e util colocar n umeros nas arestas de um grafo. Por exemplo, o n umero
pode representar a distancia ou capacidade de uxo. Grafos como esses sao chamados
com peso ou com arestas rotuladas.
`
As vezes, esses gracos sao chamados redes.
Denicao 52 (Rotulo de aresta) Um rotulador de arestas de um grafo e uma funcao
rotuloDeAr : E(G) W
onde W e um conjunto de rotulos, comumente n umeros representando distancias ou
uxos.
Exemplo 149 O grafo na gura 8.3 tem um rotulo colocado em cada aresta.
170 CAP

ITULO 8. GRAFOS E

ARVORES
Figura 8.3: um grafo rotulado
Denicao 53 (Rotulo de vertices) Um rotulo de vertice de um grafo e uma funcao
rotV ert : V (G) W
onde W e um conjunto de rotulos para os vertices.
Denicao 54 (Grau de um vertice) O grau de um vertice e o n umero de arestas inci-
dentes com o vertice, sendo que cada laco conta duas vezes.
Proposicao 11 Seja G um grafo com p vertices e q arestas. Seja o vertice v
i
com grau
g
i
, para i = 1, 2, 3, ..., p. Entao,
p

i=1
d
i
= 2q
Prova: Tomando a soma dos graus dos vertices, cada laco contando duas vezes, por
denicao, e toda outra aresta e contada duas vezes, uma vez so para cada vertice que ela
contem. Portanto, a soma dos graus dos vertices de um grafo e duas vezes o n umero de
arestas.
Corolario 1 O n umero de vertices de grau mpar e par.
Matrizes e multiplicacao de matrizes
Para aqueles nao familiares com o assunto desta secao daremos uma descricao rapida
de matrizes. As secoes seguintes exigem conhecimento de matrizes e multiplicacao de
matrizes.
Denicao 55 Uma matriz A, mk, e um vetor retangular de elementos tendo m linhas
e k colunas, como mostramos abaixo.
8.2. GRAFOS 171
A =
_
_
_
_
a
11
a
12
... a
1k
a
21
a
22
... a
2k
... ... a
ij
...
a
m1
a
m2
... a
mk
_
_
_
_
Os elementos na i esima linha e j-esima coluna e a
ij
.
Um exemplo de uma matriz 3 4 e:
A =
_
_
1 2 0 1
0 3 4 2
2 2 2 3
_
_
O elemento a
23
e 4.
um exemplo de uma matriz 3 3 e:
A =
_
_
1 2 0
2 4 0
2 2 2
_
_
Denicao 56 (Multiplicacao de matrizes) Se uma matriz A e mk e outra B e k n,
entao o produto existe e e denido por uma matriz na qual o elemento na i-esima linha
e j-esima coluna e:
a
i1
b
1j
+a
i2
b
2j
+... +a
ik
b
kj
=
x=k

x=1
a
ix
b
xj
Exemplo 150 Uma matriz 2 3 multiplicada por uma matriz 3 2 resulta
uma matriz 2 2. Portanto:
_
1 2 -1
0 3 2
_
_
_
1 2
0 3
2 2
_
_
=
_
1 1 + 2 0 +1 2 1 2 + 2 3 +1 2
0 1 + 3 0 + 2 2 0 2 + 3 3 + 2 2
_
=
_
1 6
4 13
_
Observe que alterando a ordem da multiplicacao obteramos um resultado di-
ferente para as matrizes nesse exemplo. Para alguns outros pares de matrizes
poderia nem ser possvel a multiplicacao.
Exemplo 151
_
1 2
3 4
__
0 1
2 -1
_
=
_
1 0 + 2 2 1 1 + 2 1
3 0 + 4 2 3 1 + 4 1
_
172 CAP

ITULO 8. GRAFOS E

ARVORES
=
_
4 1
8 1
_
Exemplo 152 Dada a matriz
A =
_
_
0 1 1
1 0 1
1 1 0
_
_
Calcular A
2
, A
3
e A
4
.
A
2
= AA =
_
_
2 1 1
1 2 1
1 1 2
_
_
; A
3
=
_
_
2 3 3
3 2 3
3 3 2
_
_
; A
4
=
_
_
6 5 5
5 6 5
5 5 6
_
_
.
Descricao de um grafo
A representacao de um grafo por um desenho e util, se o n umero de vertices e arestas
sao pequenos. Na pratica, os grafos de valores comerciais tem muitos vertices e arestas,
para que o desenho seja util.

E necessario uma representacao que possa ser armazenada
no computador. Para a representacao dos vertices de um grafo uma lista e suciente. A
matriz de adjacencia e a lista de adjacencia, descrita abaixo, sao duas maneiras bem
conhecidas de representar as arestas de um grafo.
Matriz de adjacencia. A matriz de adjacencia de um grafo simples G, com p
vertices, e uma matriz p p de 0s e 1s :
A =
_
_
_
_
a
11
a
12
... a
1p
a
21
a
22
... a
2p
... ... aij ...
a
p1
a
p2
... a
pp
_
_
_
_
onde para todo i, j de 1 a p a
ij
=
_
1, se v
i
e adjacente a v
j
0, se v
i
nao e adjacente a v
j
Observe que, para cada ordem na qual os vertices sao considerados, havera uma matriz
de adjacencia para um dado grafo.
Lista de adjacencia. Para cada vertice de um grafo, lista os vertices adjacentes
a esse vertice. Isto e, para cada v em G denimos l(v) como sendo a lista de vertices
adjacentes a v,
Exemplo 153 Dar a representacao da matriz de adjacencia da gura 8.4.
8.2. GRAFOS 173
Figura 8.4: Um grafo
A =
_
_
_
_
_
_
0 1 1 0 1
1 0 0 1 0
1 0 0 0 0
0 1 0 0 1
1 0 0 1 0
_
_
_
_
_
_
A segunda linha, por exemplo, da matriz pretende mostrar que v
2
e adjacente
a v
1
e v
2
e adjacente a v
4
. As demais dao informacoes similares.
Exemplo 154 Dado, como uma tabela, a representacao de uma lista de
adjacencia para o grafo na gura 8.4
1 2 3 4 5
2 1 1 2 1
3 4 5 4
5
A segunda coluna da tabela, por exemplo, pretende mostrar que v
1
e adjacente
a v
2
, v
3
e v
5
. As outras colunas dao informacao similares.
A lista de vertices adjacentes a v
1
, v
2
, ... pode ser escrita explicitamente como
uma lista. Por exemplo, l(v
1
) =< v
2
, v
3
, v
5
>, ...
Passeio, caminho e outras coneccoes
Muitos problemas que podem ser modelados por grafos requerem consideracoes de modo
que os vertices possam ser conectados via arestas e os vertices intermediarios no grafo.
Por exemplo, o problema de achar a distancia mais curta e a mais longa entre vertices,
por exemplo.
Denicao 57 (Passeio) Um passeio de comprimento n num grafo e uma sequencia de
vertices e arestas formadas por cada par sucessivos de vertices.
Num grafo simples, o passeio pode ser descrito listando somente os vertices, por exem-
plo, v
0
v
1
...v
n
, onde se entende que o passeio contenha as arestas ligando os vertices su-
cessivos.
W(v
0
, v
n
) = v
0
, e
1
, v
1
, e
2
, ..., e
n
, v
n
, onde e
i
= v
i1
, v
i
.
174 CAP

ITULO 8. GRAFOS E

ARVORES
Figura 8.5: Um grafo com 3-ciclo
O comprimento de um passeio e o n umero de arestas que ele contem.
Se n = 0 o passeio consiste de um unico vertice, v
0
, e nenhuma aresta. Neste caso,
ele e chamado um passeio de comprimento 0. Se v
0
= v
n
o passeio diz-se fechado.
Denicao 58 (Caminho) Um passeio com vertices distintos e chamado um caminho.
Denicao 59 (Trilha) Um caminho com arestas distintas e chamado uma trilha.
Todo caminho e uma trilha. Mas, nem toda trilha e um caminho.
Denicao 60 (Circuito) Uma trilha fechada e chamado um circuito.
Um circuito nao e um caminho.
Denicao 61 (Ciclo) Um circuito com no mnimo uma aresta, e no qual o unico vertice
repetido e v
n
= v
0
, e chamado um ciclo.
Um ciclo de comprimento n e chamado um n ciclo. Um 1 ciclo e um laco, um
2 ciclo consiste de um par de arestas m ultiplas. Para n 3, um n ciclo pode ser
chamado um polgono.
Exemplo 155 no grafo da gura 8.5:
1. W(v
1
, v
5
) = v
1
v
2
v
3
v
5
v
4
v
3
v
5
e um passeio de comprimento 6.
2. W(v
1
, v
1
) = v
1
v
3
v
1
e um passeio fechado de comprimento 2, nao um
circuito.
3. P(v
1
, v
5
) = v
1
v
2
v
3
v
4
v
5
e um caminho de comprimento 4.
4. W(v
1
, v
2
) = v
1
v
3
v
4
v
5
v
3
v
2
e uma trilha, mas nao um caminho.
5. W(v
1
, v
1
) = v
1
v
2
v
3
v
4
v
5
v
3
v
1
e um circuito, mas nao ciclo.
6. v
1
v
4
v
3
nao e um passeio, pois v
1
, v
4
nao e uma aresta.
7. W(v
1
, v
1
) = v
1
v
2
v
3
v
1
e um 3-ciclo.
8.2. GRAFOS 175
Figura 8.6: Passeios de comprimento 2, de v
2
a v
5
, na gura 8.4
8. Seja V = v
1
, v
2
, v
3
e E = v
1
, v
2
, v
2
, v
3
, v
3
, v
1
. Entao, o subgra-
fo (V, E) contem seis ciclos como v
1
v
2
v
3
v
1
. O subgrafo esta associado a
uma classe de equivalencia de ciclos tendo os mesmos vetices e arestas.
A matriz de adjacencia oferece um metodo para a computacao do n umero
de passeios de um dado comprimento num grafo. Por exemplo, mostramos,
abaixo, como calcular o n umero de passeios de comprimento 2, num dado
grafo.
Exemplo 156 Achar e calcular o n umero de todos os passeios de compri-
mento 2, de v
2
a v
5
, no grafo da gura 8.4.
Na gura 8.6, estao desenhados todos os passeios possveis, de comprimento
2, de v
2
a v
5
, no grafo da 8.4. As arestas que existem podem ser representadas
por uma linha solida e sao rotulados por 1, como uma matriz de adjacencia.
As arestas que nao estao no grafo estao pontuadas e rotuladas por 0, como
na matriz de adjacencia.
Os passeios de comprimento 2 podem ser identicados multiplicando os rotulos
nas arestas que formam passeios possveis, para formar um rotulo de passeios.
Portanto, v
2
v
1
v
5
tem rotulo de caminho 1 1 que e 1 e um caminho de com-
primento de v
2
a v
5
. Entretanto, v
2
v
3
v
5
tem rotulo de caminho 0 0 que e 0
e este caminho possvel nao existe no grafo da gura 8.4.
Em geral, sejam a, b os rotulos de arestas para v
i
v
j
e v
j
v
k
, respectivamente.
Se ab = 1, entao v
i
v
j
v
k
e um passeio e se ab = 0, entao v
i
v
j
v
k
nao e um
passeio.
O n umero de todos os passeios possveis de comprimento 2, de v
2
a v
5
pode
ser encontrado pelo calculo
1 1 + 0 0 + 0 0 + 1 1 + 0 0
que gera dois caminhos de comprimento 2.
176 CAP

ITULO 8. GRAFOS E

ARVORES
Agora, o calculo acima e exatamente o mesmo que um calculo efetuado no processo
normal de multiplicac ao de matrizes. Para a matriz de adjacencia
A
2
=
_
_
_
_
_
_
0 1 1 0 1
1 0 0 1 0
1 0 0 0 0
0 1 0 0 1
1 0 0 1 0
_
_
_
_
_
_
_
_
_
_
_
_
0 1 1 0 1
1 0 0 1 0
1 0 0 0 0
0 1 0 0 1
1 0 0 1 0
_
_
_
_
_
_
A linha 2, da matriz A, no lado esquerdo representa as arestas, a partir de v
2
, para
cada um outro vertice, como podemos ver no lado esquerdo da gura 8.6. A coluna 5
da matriz A na direita, representa as arestas de cada vertice a v
5
, como pode ser visto
no lado direito da gura. A multiplicacao normal de matrizes gera o resultado da linha 2
versus a coluna 5, na posicao da linha 2 e coluna 5 de A
2
, abaixo. Em geral, o n umero
de passeios, de comprimento 2 de v
i
a v
j
, e o n umero na linha i e coluna j, de A
2
.
A
2
=
_
_
_
_
_
_
3 0 0 2 0
0 2 1 0 2
0 1 1 0 1
2 0 0 2 0
0 2 1 0 2
_
_
_
_
_
_
O resultado, acima, e generalizado na proposicao 12.
Proposicao 12 (Contagem de passeios) Seja A a matriz de adjacencia de um grafo.
Os elementos a
s
ij
, da matriz A
s
conta o n umero de passeios de comprimento s, de v
i
a v
j
,
no grafo.
Exemplo 157 Achar o n umero de passeios, de comprimento 4, de v
1
a v
3
no
grafo da gura 8.7.
Solucao: A matriz de adjacencia para este grafo e a matriz A do exemplo
152. A entrada na linha 1 e coluna 3 de A
4
e 5. Pela proposicao 12, acima,
existem cinco passeios de comprimento 4, de v
1
a v
3
. Por exemplo, v
1
v
3
v
2
v
1
v
3
.
8.3

Arvores
Em geral, um grafo tera mais que um caminho entre alguns pares de vertices e, talvez,
nenhum caminho entre outros pares. Um grafo com exatamente um caminho entre cada
par de vertices e chamado uma arvore. Portanto, uma arvore pode ser pensada como
tao eciente que ela tem bastante arestas para permitir a comunicacao entre cada par
de vertices. Nesta secao, desenvolveremos os conceitos de grafo conexo, arvore e arvore
binaria.
8.3.

ARVORES 177
Figura 8.7: grafo para o exemplo
Figura 8.8: o grafo das pontes de Konigsberg
Grafos conexos
Denicao 62 (Conexo) Um grafo G diz-se conexo se para todo par de vertices x, y G,
existe um caminho P(x, y).
Seja e uma aresta de um grafo G. Ge e o grafo obtido removendo e, do conjunto
de arestas de G.
Denicao 63 (Ponte) Seja G um grafo conexo. Uma aresta e de G, diz-se uma ponte
se o grafo Ge nao for conexo.
Denicao 64 (Passeio Euleriano, circuito) Um passeio que contem cada vertice exa-
mente uma vez e chamado um passeio Euleriano(ou trilha). Um circuito que contem cada
vertice, exatamente uma vez diz-se um circuito Euleriano.
Leonhard Euler(1707-1783) foi um matematico suico que resolveu um problema sobre
um grafo em 1736. Sua solucao foi, provalmente, o primeiro exemplo, de uma abordagem
de teoria de grafos por um matematico. O problema de Euler e chamado o problema
das pontes de Konigsberg. Ele consiste em determinar se o grafo geral, da gura 8.8, e
um circuito Euleriano.
Euler argumentou que nenhum circuito seria possvel, pois para que tal circuito exis-
tisse, todo vertice deveria ser de grau par. Cada verice deve ser usado exatamente uma
vez, num circuito Euleriano e para percorrer o circuito cada aresta que entrar num vertice
deve casar com um diferente que sai do vertice. Assim, o grau do vertice deve ser um
m ultiplo de 2. O argumento se aplica, igualmente, a todos os vertices.
Os vertices no grafo nas pontes de Konigisberg sao de grau mpar. Portanto, o proble-
ma nao tem solucao.
178 CAP

ITULO 8. GRAFOS E

ARVORES
Proposicao 13 (Euler) Se o grafo tiver um circuito Euleriano, entao cada vertice deve
ser de grau par. Isto e, uma condicao necessaria para um grafo possuir um circuito
Euleriano e que cada vertice seja de grau par.
Prova: O argumento de Euler(acima) prova a proposicao.
Corolario 2 Se um grafo tiver um passeio Euleriano, entao ele deve ter exatamente dois
vertices de grau mpar ou nenhum vertice de grau mpar.
Prova: Seja G tendo um passeio Euleriano iniciando no vertice a e terminanado no
vertice b.
Se a = b, entao a proposicao 13 se verica e todos os vertices tem grau par.
Se a ,= b, construa um grafo Ge, adicionando a aresta e = (a, b) a G. O novo grafo
tem um circuito Euleriano consistindo dos passeios de Euler de a a b, em G, juntamente
com a aresta e, de b ate a.
Pela proposicao 13, todo vertice em G e e par. Remova e, para obter G. Agora,
todo vertice e par, exceto a e b, os quais cada um tem uma aresta incidente removida e,
portanto, e mpar. A recproca do teorema de Euler e verdadeira. Ela pode ser provada
por inducao matematica.
Proposicao 14 (Recproca do teorema de Euler)
Se todos os vertices de um grafo nito conexo, tiver grau par, entao, este grafo possui
um circuito Euleriano. Isto e, uma condicao suciente para um grafo ter um circuito
Euleriano e que todo vertice seja de grau par.
Corolario 3 Um grafo nito, conexo que tem exatamente dois vertices de grau mpar
deve ter um passeio de Euler.
O algoritmo seguinte, para construir um passeio de Euler, ou circuito num grafo, e
devido a Fleury. Uma descricao informal e:
Inicie em qualquer vertice se eles sao todos de grau par, ou num vertice de grau mpar,
se exatamente dois tem grau mpar. Percorrer as arestas de um modo arbitrario, sugeito
somente as seguintes regras:
1. remover as arestas enquanto elas forem sendo percorridas, e se qualquer vertice se
tornar desconexo, remova-o tambem;
2. escolher uma ponte como uma aresta somente se nao existir nehuma alternativa.
Algoritmo(Fleury) Para construir um passeio ou circuito de Euler para o grafo.
8.3.

ARVORES 179
Entrada: Um grafo G.
Precondic oes: V (G) e nito e conexo e
(G tem exatamente dois vertices de grau mpar ou todos pares)
Metodo: Se os vetices de G sao todos pares chame um deles a
Se dois vertices sao mpares chame um dos vertices mpares a.
Seja W o grafo contendo o vertice a(somente).
Enquanto em G sobrar arestas:
se o grau(a) > 1 entao
achar uma aresta a, x em G que nao seja uma ponte
remover a aresta a, x de G
adicionar a aresta a, x a e o vertice x a W
caso contrario(se o grau(a=1)
(existe somente uma aresta a,x incidente com a)
remover a aresta a, x e a de G
adicionar a, x e o vertice x a W
Seja o novo vertice a o ultimo x.
(Agora, repita. Um novo x e encontrado na primeira linha do laco.)
Sada: Um caminho W.
Poscondicao: (W e um passeio de Euler para G e G tem 2 vertices mpares) ou (W e um circuito de Euler para G e todos os vertices de G sao pares)
Denicao 65 (Caminho e ciclo Hamiltoniano) Um caminho hamiltoniano num grafo
simples e um que contem cada vertice exatamente uma vez.
Um ciclo Hamiltoniano contem cada vertice exatamente uma vez, execeto que o pri-
meiro vertice e o mesmo que o ultimo.
Uma condicao necessaria e suciente para um circuito ser Eulerian e que cada vertice
tenha grau par. Nenhuma condicao como essa esta disponvel para ciclo. Achar um ciclo
Hamiltoniano num grafo e equivalente ao problema do caixeiro viajante(com arestas
de pesos unitarios), como veremos no proximo captulo). Nao existe nenhum algoritmo
eciente para a sua solucao.
Denicao 66 (Desconexo) Um grafo que nao e conexo e chamado desconexo. Os sub-
grafos dos grafos que sao conexos sao chamados componentes conexas do grafo.
No captulo 7, denimos uma relacao de equivalencia como tendo tres propriedades.
Ela deve ser reexiva, simetrica e transitiva. Uma relacao de equivalencia sobre um con-
junto S parciona-o em subconjuntos, chamados classes de equivalencia. Cada par de
elementos numa dada classe de equivalencia satisfaz a relacao. Agora, denimos uma re-
lacao chamada conexa sobre grafos e usamo-la para identicar as componentes conexas
de um grafo.
180 CAP

ITULO 8. GRAFOS E

ARVORES
Proposicao 15 Seja uma relacao denida sobre os vertices de um grafo simples, G.
xy = existe um caminho P(x, y)
Entao, e uma relacao de equivalencia no vertices de G.
Prova:
1. e reexiva. Existe um caminho(de comprimento zero) P(x, x) para todo x.
Portanto, xx.
2. e simetrica. Se existe um caminho P(x, y), entao existe tambem um caminho
P(x, y).
Portanto, se xy, entao yx.
3. e transitiva. Dados xy e yx existe um caminho P(x, y) e um caminho P(y, x).
Colocando esses caminhos juntos, certamente existe um passeio de x a z, mas ele
pode ter vertices repetidos e, portanto, pode nao ser um caminho.
Va de x a y, a longo de P ate atingir o primeiro vertice comum a P e Q. Chame
este vertice u. Deve existir um a, pois y pertence a P e Q, mesmo se nao existir
outro vertice.
Agora, a parte de P de x a u, conjuntamente com a parte de Q, de u a z constitui
um caminho de x a z.
Portanto, xz.
Desse modo e uma relacao de equivalencia.
Deduzimos da assertiva e uma relacao de equivalencia nos vertices de um grafo, que
ela parciona os vertices de G em classes de equivalencia. Cada classe de equivalencia dos
vertices ligado por um caminho forma um subgrafo conexo de G, com aqueles caminhos.
Os subgrafos conexo(pela denicao 66).

Arvores
A seguir, comecando com as denicoes, iremos acrescentando propriedades de modo a
obter uma arvore. Veremos seis denicoes diferentes de arvore, que apresentaemos como
uma proposi cao.
Denicao 67 (

Arvore) Uma arvore e um grafo conexo sem crculos.


8.3.

ARVORES 181
Proposicao 16 Seja uma arvore tendo p vertices e q arestas. Entao, p = q + 1.
Prova: A prova e feita usando inducao matematica sobre p.
Para p= 1 existe uma arvore. Ela tem um vertice e nenhuma aresta. Portanto, p = 1
e q = 0, que satisfaz o teorema.
Suponha que a proposicao e verdadeira para todas as arvorres cujo n umero de vertices
e menor que p. Seja T uma arvore qualquer com p vertices. Escolha uma aresta qualquer
e = x, y de T.
O grafo T e nao e conexo. Porque se ele fosse conexo, haveria um caminho P(x, y)
em T e o qual junto com e daria um ciclo em T. Isto contradiz a denicao de arvore.
Portanto, e e uma ponte de T e T e tem duas componentes. Cada uma das
componentes e uma arvore com menos que p vertices. Pela hipotese indutiva o resultado
se verica para cada componente.
Seja uma componente com q
1
arestas e outra com q
2
. Entao,
p = (q
1
+ 1) + (q
2
+ 1) = q
1
+q
2
+ 1) + 1 = q + 1
recordando que T tem uma aresta extra e.
Logo, por inducao matematica a proposicao e verdadeira para todos os inteiros p 1.
Proposicao 17 Se x e y sao vertices distintos numa arvore T, entao existe exatamente
um caminho P(x, y).
Prova: Por denicao, T e conexo. Portanto, para todo vertice x, y deve existir um
caminho P(x, y). Mas nao pode existir um segundo caminho Q(x, y), pois se houvesse
esse outro caminho poderamos construir um ciclo de P a Q.
A inversa desta proposicao tambem e verdadeira. Neste ponto, juntaremos as proprie-
dades de arvores numa proposicao, que inclui as duas proposicoes acima.
Proposicao 18 (

Arvores) Se qualquer um dos seguintes fatos for verdadeiro para um


grafo T, com n vertices, entao todos as assertivas abaixo sao verdadeiras.
1. T e uma arvore.
2. T nao contem nenhum ciclo e tem n 1 arestas.
3. T e conexo e tem n 1 arestas.
4. T e conexo e toda aresta e uma ponte.
5. Todo par de vertices em T e conectado por exatamente um caminho.
6. T nao contem ciclos, mas a adicao de uma nova aresta(com nenhum novo vertice)
cria um ciclo.
182 CAP

ITULO 8. GRAFOS E

ARVORES
O ponto da proposicao 18 e que qualquer uma das assertivas de 2 a 6 poderia substituir
a denicao 67, como uma denicao satsfatoria de uma arvore.
A organizacao logica da prova e interessante. Mostraremos que cada uma das 1 2,
3 4, 4 5, 5 6, 6 1 e verdadeira. Entao, qualquer assertiva implica todas
as outras, e, assim a proposicao ca provada.
Prova: A proposicao e verdadeira para n = 1. Considere n 2.
1 2. Isto segue da denicao 67 e a proposicao 16.
2 3. Suponha que T e desconexo. Obtenha uma contradicao da proposicao
16.
3 4. A remocao de qualquer aresta resulta num grafo com n vertices e n2
arestas. Pode ser mostrado, por inducao sobre n, que tal grafo e desconexo.
Logo, por contradicao a proposicao e verdadeira.
4 5. Como T e conexo, cada par de vertices esta conectada por um
caminho. Mas, nenhum par de vertices esta conectado por dois caminhos, pois
esses caminhos produziria um ciclo. A adicao de uma nova aresta entre os
vertices u, v T cria um ciclo com o caminho existente P(u, v).
6 1. Suponha que T e desconexo. Adicione uma aresta com um vertice
numa componente e o outro vertice numa componente diferente. Nenhum ciclo
e criado, e isso contradiz a proposicao.
Arvores binarias
Qualquer vertice de uma arvore pode ser escolhido como um vertice raz. Mas, perderemos
esta exibildade se pedirmos que o grafo seja dirigido. Poderemos restringir uma arvore
dirigida limitando o n umero de arestas deixando cada vertice. A mais simples de tais
estruturas e uma arvore binaria dirigida no qual nenhum mais que duas arestas pode deixar
cada vertice. Se, alem disso, as arestas deixando cada vertice sao ordenadas rotulando-
os(digamos) `esquerda e direita, entao cada vertice e localizado por um unico caminho,
representado por uma sequencia de esquerdas e direita, a partir da raz.
Uma arvore como esta pode ser chamada uma arvore binaria, dirigida, ordenada.
A uma arvore como esta chamaremos abreviadamente ABDO.
Uma subarvore de uma arvore t, e qualquer subconjunto dos vertices de t, juntamente
com o subconjunto dos vertices de t, que forma uma arvore. Cada vertice de uma ABDO
t e a raz de uma subarvore de t. Este fato sugere uma denicao recursiva.
Denicao 68 (ABDO) Uma arvore binaria, dirigida e ordenada, t, e denida recursi-
vamente por
t = nula (x, y, z)
8.3.

ARVORES 183
Figura 8.9: Uma ABDO
onde nula e a arvore vazia, que nao tem nenhum vertice ou aresta e (x, y, z) e uma
tripla ordenada.
x e a subarvore `a esquerda;
y e a raz de t; e
z e a subarvore `a direita.
O segundo elemento, y, da tripla ordenada, chamada a raz da arvore, pode ser usada
para armazenar informacao. Uma tarefa possvel e pesquisar uma arvore pela infor-
macao armazenada nela.
Exemplo 158 Mostre que o grafo armazenado na gura 8.9 satisfaz a de-
nicao 68 de uma ABDO.
Solucao: O grafo desenhado na gura 8.9 e uma ABDO se ela for nula ou
(v
2
, v
1
, v
3
v
4
v
5
) for uma arvore.
Se o grafo for nao nulo, devemos investigar a tipla ordenada. A tripla e uma
ABDO, se v
2
e uma ABDO(uma subarvore `a esquerda) e v
1
e a raz(isto porque
ele e um vertice no segudo lugar na tripla), e se (v
3
, v
4
, v
5
) e uma ABDO(uma
subarvore `a direita).
v
2
e uma ABDO se(nula, v
2
, nula) e uma ABDO, o que acontece.
(v
3
, v
4
, v
5
) e um a ABDO se:
1. v
3
e uma ABDO(isto acontece porque (nula, v
3
, nula) e uma ABDO);
2. v
4
e a raz( o que acontece);
3. v
5
e uma ABDO( o que e verdade porque (nula, v
5
, nula) e uma ABDO).
Portanto, o grafo desenhado na gura 8.9 e uma ABDO.
Para ajudar a extrair informacoes, denimos a seguinte funcao parcial sobre uma
arvore t. A arvore nao esta denida para a arvore nula.
Caso contrario:
184 CAP

ITULO 8. GRAFOS E

ARVORES
esquerda(x) = x, a subarvore `a esquerda de t
info(t) = a informacao em y, a raz de t
direita(t) = z, a subarvore `a direita de t.
Existem varias maneiras pelas quais poderemos extrair informacao armazenada no
vertice de uma ABDO. A seguinte funcao denida recursivamente recebe como entrada
uma ABDO, t, com informacao mantida em cada um de seus vertices e devolve como
sada a informacao como uma lista.
Seja listaDe

Arv o nome da funcao, o conjunto das ABDO, T e o conjunto das


listas de informac ao L. Entao:
listaDe

Arv : T L
istaDe

Arv(t) = <>, se t = nula


_
_
_
listaDe

Arv(esquerdA(T)))
colocar < info(t) >
colocar listaDe

Arv(direita(t))
_
_
_
se t ,= nula
Exemplo 159 Aplicar listaDe

Arvo a ABDO de informacao desenhada na


gura 8.9. A informacao armazenada na arvore e r, p, i, z, e localizada
nos vertices v
1
, v
2
, v
3
, v
4
, v
5
, respectivamente.
A sada e:
listaDe

Arv(v
2
)= <> [[ < p > [[ <>
colocar < r >
colocar listaDe

Arv(v
3
, v
4
, v
5
)
(i.e., <> [[ < i > [[ <> [[ < z > [[ < e > [[[[ <>)
Efetuando o colocar obtemos < p, r, i, z, e >.
A funcao listaDe

Arv pode ser escrita como um algoritmo cujo proposito seja extrair a
informacao extrada dos vertices de uma ABDO.
Algoritmo(

Arvore de informacao binaria) Para obter uma lista da infor-


macao armazenada numa ABDO.
Entrada: t, uma arvore
Precondic oes: t satisfaz a denicao 68
Metodo: listaDe

Arv(t)
Sada: l, uma lista
Poscondicoes: a lista l contem a informa de cada vertice de t, em alguma ordem
8.4.

ARVORES GERADORAS 185
8.4

Arvores geradoras
Nesta secao, analisaremos uma especie particular de arvore, chamada arvore
geradora. As arvores geradoras sao importantes porque elas tem o n umero
mnimo de arestas, enquanto permanece conexa.
Denicao 69 (

Arvore geradora) Um subgrafo de um grafo conexo, G, diz-se


uma arvore geradora se e somente se ele e uma arvore que tem o mesmo
conjunto de vertices que G.
Algoritmo(

Arvore geradora) Para construir uma arvore geradora a partir


de um grafo simples nito G, se ele existir.
Entrada: G e um grafo simples com n vertices.
Precondic oes: nenhuma
Metodo: Escolha qualquer vertice u
0
em G como o primeiro vertice de T.
Enquanto existir uma aresta em G incidente com um vertice, u, em
T e um vertice, v, nao em T:
adicione esta aresta u, v a T
adicione v a T,
Se T contem n vertices, entao T e uma arvoe geradora para G.
Se T contem menos que n vertices, entao G nao e conexo.
Sada: T, uma arvore.
Poscondicoes: V (T) = V (G) ou G nao e conexo.
Isto e, T tem os mesmos vertices que o grafo de entrada G e
e uma arvore geradora se G for conexo.
Prova:
Inicialmente, T tem um vertice. Para cada passo no laco enquan-
to, sao acrescentados a T uma aresta e um vertice. Desse modo,
no m de um passo pelo laco enquanto o n umero de vertices e
um a mais que o n umero de arestas.
Tambem T e conexo.
Portanto, pela proposicao 18, T e uma arvore apos cada passo pelo
laco enquanto, incluindo o ultimo.
Se T tem n vertices, entao ele tem todos os vertices de G e e uma
arvore geradora de G.
Se T tem menos que n vertices, quando o algoritmo terminar, deve
existir no mnimo um vertice em G, mas nao em T. Seja s um de
tais vertices.
186 CAP

ITULO 8. GRAFOS E

ARVORES
Suponha que Ge conexo. (Veremos que isto leva a uma contradicao.)
Entao, existe um caminho P(u
0
, s) em G. Seja s
0
, s
1
, ..., s
k
os vertices
desse caminho, onde s
0
= u
0
e s
k
= s.
Agora, k 1, pois u
0
,= s. Seja s
i
o primeiro vertice nao em T. (Deve
existir tal vertice pois s
k
sera ele, se nao existir outro.) E i 1, pois
u
0
T. Agora, s
i1
, s
i
e uma aresta que liga um vertice em T.
Mas, o algoritmo termina porque nao existe nenhuma aresta como
tal, em T, assim G deve nao ser conexo.

Arvore de busca
As arvores geradoras tem a propriedade util de que existe um unico caminho
entre cada dois vertices. Entretanto, embora o algoritmo da arvore geradora
produza efecientemente uma arvore geradora, nao existe maneira de achar um
caminho entre um par arbitrario de vertices sem uma pesquisa que consuma
muito tempo.
A diculdade pode ser evitada da seguinte maneira. Chame o vertice ini-
cial, u
0
, no algoritmo da arvore geradora, de vertice raz. Considere a etapa
no algoritmo que adiciona a aresta u, v `a arvore T, onde u T e v / T. O
vertice u pode ser pensado como o predecessor ou pai do vertice v T.
Por isto escreveremos
pr(v) = u
Cada vertice, exceto o vertice raz tem um pai em T. Por completude
denamos um vertice vazio, . A funcao pr e, agora, denida sobre todos os
vertices de T. A funcao e representada sobre um diagrama por ponteiros
ou setas como na gura 8.10. No diagrama :
pr(a) = , pr(b) = a, pr(c) = a, pr(d) = b, pr(e) = b, pr(f) = b
e assim, o vertice da raz e a.
A funcao pai ou ponteiro pode ser aplicada sucessivamente aos vertices
para chegar no vertice raz, por exemplo, na gura 8.10:
pr
2
(f) = pr pr(f) = pr(b), o vertice da raz
Denicao 70 (Nvel ou profundidade) Se pr
k
(v) = r, onde r e o vertice da
raz, entao o vertice v diz-se esta no nvel(ou profundidade) k. Escreveremos
nvel(v) = k e denimos nvel(r) como sendo 0.
8.4.

ARVORES GERADORAS 187
Figura 8.10: A func ao pai
O caminho entre dois vertices m, n pode, agora, ser encontrado fazendo uma
busca aos pai, av os, etc., de m, n ate que seja encontrado um ancestral
comum.
Uma arvore geradora, com a estrutura adicional dada pela funcao pai, e
chamada uma arvore de busca.
No algoritmo seguinte, dizemos que os vertices que sao adjacentes somen-
te aos vertices na arvore sao dados. O algoritmo termina quando todos os
vertices forem dados. O algoritmo faz uso de uma estrutura chamada la.
Uma la e uma lista de objetos esperando para serem processados, de alguma
maneira. A regra com a qual os objetos sao escolhidos para serem removidos e
processados e chamada a prioridade da la. No algortimo que segue a priori-
dade e rst in, rst out(FIFO), isto e, o primeiro a entrar e o primeiro
a sair.
Algoritmo(

Arvore de busca primeiro em largura). Para construir uma


arvore de busca com primeiro em largura, de um grafo nito conexo sim-
ples.
188 CAP

ITULO 8. GRAFOS E

ARVORES
Entrada: Um grafo simples G.
Precondic oes: Que G seja conexo.
Metodo: Seja a arvore T de vertice a arvore vazia. (T nula)
Escolha um vertice raz u
0
, e acrescente ele a T.
pr(u
0
) (o vertice vazio).
Seja a la de vertices como sendo < u
0
>.
Enquanto a la nao estiver vazia:
chame o vertice na cabeca da la, v.
para vada vertice w que for adjacente a v em G e
nao em T
adicione v, w a T.
coloque w na la de vertices
pr(w) v
remova v da la(ela diz-se dada).
Sada: Uma arvore de busca T.
Poscondicoes: T e uma arvore e V (T) = V (G);
Isto e, T tem os mesmos vertices que o grafo de entrada G e
e uma arvore geradora para G.
Prova: O algoritmo da arvore de busca primeiro em largura e, simplesmen-
te, um renamento do algoritmo da arvore geradora, nos quais os vertices sao
escolhidos de maneira particular e e acrescentada uma funcao ponteiro. Por-
tanto, se G for conexo, o algoritmo da largura primeiro encontra uma arvore
de busca com raz u
0
para G.
Exemplo 160 Construir uma arvore de busca primeiro em largura
do grafo G, dado a a seguinte tabela da lista de adjacencia.
0 1 2 3 4
1 0 0 1 1
2 2 1
3
4
Solucao: Escolha 0 como sendo vertice raz. A seguinte tabela
mostra o crescimento da arvore.
8.4.

ARVORES GERADORAS 189
Figura 8.11: Uma arvore de busca em largura primeiro de G
T fila funcao pai
0(raz) < 0 > pr(0) =
0, 1, 1 < 0, 1 > pr(1) = 0
0, 2, 2 < 0, 1, 2 > pr(2) = 0
0 e dado < 1, 2 >
1, 3, 3 < 1, 2, 3 > pr(3) = 1
1, 4 < 1, 2, 3, 4, > pr(4) = 1
1 e dado < 2, 3, 4 >
2 e dado < 3, 4 >
3 e dado < 4 >
4 e dado < >
O diagrama da gura 8.11 mostra a arvore de busca primeiro
em largura G, contruda, acima. A profundidade ou nvel de
qualquer vertice numa arvore de busca pode ser recuperado usando
a funcao pai(ponteiro). Por exemplo, o nvel do vertice 3 e obtido
observando pr(3) = 1; pr(1) = 0(a raz) e, portanto, pr
2
(3) = 0. O
vertice 3 e de nvel 2.
Uma outra abordagem para construir uma arvore de busca e construindo
caminhos tao longos quanto possveis, buscando os nveis mais profundos do
grafo, a partir da raz. Quando se tornar impossvel estender a arvore mais
para baixo da raz, retornamos um nvel para o vertice anterior e tentamos
ir descer no grafo, por um novo caminho. O algoritmo termina quando cada
vertice tiver sido visitado. O seguinte algoritmo para construir a arvore de
busca primeiro em profundidade usa uma la com uma prioridade diferente
daquela do algoritmo anterior. A prioridade da la e last in, rst out(LIFO),
isto e, o ultimo a entrar e o primeiro a sair. Cada chega e colocado na cabeca
da la.
Algoritmo(

Arvore de busca primeiro em profundidade). Para construir


uma arvore de busca primeiro em profundidade, de um grafo nito conexo
simples.
190 CAP

ITULO 8. GRAFOS E

ARVORES
Entrada: Um grafo simples G.
Precondic oes: Que G seja conexo.
Metodo: Seja a arvore T de vertice a arvore vazia. (T nula)
Escolha um vertice raz u
0
, e acrescente ele a T.
pr(u
0
) (o vertice vazio).
Seja a la de vertices como sendo < u
0
>.
Enquanto ((a la nao estiver vazia) e (V (T) ,= v(G)):
chame o vertice na cabeca da la, v.
se o vertice w for adjacente a v em G e nao em T
entao adicione w, v a T
adicione w a T
coloque w na cabeca da la
pr(w) v
caso contrario remova v da la.
Sada: Uma arvore de busca T.
Poscondicoes: T e uma arvore e V (T) = V (G);
Isto e, T tem os mesmos vertices que o grafo de entrada G e
e uma arvore geradora para G.
Prova: O algoritmo anterior e tambem, simplesmente, um renamento do
algoritmo da arvore geradora, na qual e acrescentado um ponteiro. Portanto,
se G for conexo, o algoritmo da profundidade primeiro encontra uma arvore
de busca com raz u
0
, para G.
Exemplo 161 Para construir uma arvore de busca em profundi-
dade primeiro do grafo G, dado a a seguinte tabela da lista de
adjacencia.
0 1 2 3 4
1 0 1 1 0
4 2 3 2
3
Solucao: A aplica cao do algoritmo anterior a G, esta apresentado
a seguir.
8.4.

ARVORES GERADORAS 191
Figura 8.12:

Arvore de busca em profundidade
T fila pai
0 < 0 > pr(0) =
0, 1, 1 < 1, 0 > pr(1) = 0
1, 2, 2 < 2, 1, 0 > pr(2) = 1
2, 3, 3 < 3, 2, 1, 0 > pr(3) = 2
< 2, 1, 0 >
< 1, 0 >
< 0 >
0, 4, 4 < 4, 0 > pr(4) = 0
Todos os vertices de G estao em T, e assim ele para. A arvore de
busca esta desenhada na gura 8.12.

Arvore geradora de peso mnimo


Dado um campo de gas natural, com pocos e uma plataforma de tratamen-
to/bombeamento, pede-se para que os tubos sejam colocados de tal maneira
que cada poco seja conectado a plataforma a um custo total mnimo. Co-
mo cada poco esta conectado a plataforma, o sistema e conexo. Por questao
de economia nao deve existir nenhum ciclo. O problema pode ser modelado
como um grafo, tomando os pocos e a plataforma como vertices e as tubu-
lacoes possveis como arestas, cada uma rotulada com seu custo de construcao.
Entao, o problema e achar a arvore geradora para o grafo, com custo total
mnimo.
Problema(

Arvore geradora mnima) Como poderemos encontrar uma arvore


geradora para um grafo, rotulado pelas arestas para minimizar a soma dos
rotulos(pesos) na arestas da arvore?
Algoritmo(Kruskal) Para construir uma arvore geradora rotulada pelas
arestas de custo total mnimo, para o grafo conexo G.
192 CAP

ITULO 8. GRAFOS E

ARVORES
Figura 8.13: Um grafo com pesos nas arestas
Entrada: um grafo G, com arestas e
1
, e
2
, ..., e
m
n vertices e com pesos nas arestas w(e
1
), ..., w(e
m
).
Precondic oes: Que V (G) seja nito e G conexo.
Metodo: Ordenar as arrestas de G de tal modo que
w(e
1
) w(e
2
) ... w(e
m
).
Faca T como sendo e
1
, juntamente com seus vertices.
Enquanto o n umero de arestas em T for menor que n 1 :
se T com a proxima aresta na ordem nao tem circuito,
entao adicione a proxima aresta e seu vertice a T.
Sada: Uma arvore T.
Poscondicoes: T e uma arvore com a soma mnima de
arestas com pesos e V (T) = V (G).
Exemplo 162 Achar uma arvore geradora, com pesos, mnima pa-
ra o grafo da gura 8.13.
Solucao: Comparar os pesos para as arestas de G:
1 2 = w(v
2
, v
3
) 2 = w(v
6
, v
7
) 4 5 6 7
8 = w(v
1
, v
2
) 8 = w(v
5
, v
6
).
Onde as arestas tendo pesos iguais a escolha da primeira aresta e
arbitraria. A arvore geradora contem as arestas v
2
, v
5
, v
2
, v
3
, v
6
, v
7
, v
1
, v
4
, v
2
, v
4
, nao v
3
, v
5
, nao v
4
, v
5
, nao v
1
, v
2
, nao v
5
, v
6
.
O algoritmo para porque seis arestas foram colocadas na arvore.
Na aplicacao, acima, do algoritmo da busca em profundidade, os circuitos
foram identicados visualmente, do desenho. O algoritmo precisaria ser re-
nado, para permitir a identicacao automatica de circuitos, antes de usa-lo
em problemas grande.
8.5. EXERC

ICIOS 193
8.5 Exerccios
1. Os vertices adjacentes a cada um dos vertices 1, 2, 3, 4, 5 e 6 num grafo
G, sao listados na seguinte tabela:
3 4 1 2 1 2
5 6 5 5 3 3
6 4
(a)

E possvel achar um passeio de Euler para G?
(b) Construir uma arvore de busca em largura primeiro para G, a partir
dos vertices com rotulo 1.
(c) Achar o vertice ou vertices mais distantes do vertice rotulado 1.
(d) Construir uma arvore de busca em profundidade primeiro, a partir
do vertice 1.
2. Os vertices adjacentes a cada um dos vertices 1, 2, 3, 4, 5 e 6 num graf
G, estao listados na seguinte tabela:
2 1 5 1 2 1
4 5 3 2
6 6 6 5
(a)

E possvel achar um passeio de Euler para G? Se for o caso, escreve-
lo.
(b)

E possvel achar um caminho Hamiltoniano para G? Se for o caso,
escreve-lo.
(c) Construir uma arvore de busca em largura primeiro a partir do
vertice v
4
. Achar o vertice ou vertices mais distantes do vertice
v
4
.
(d) Achar uma arvore de busca em profundidade primeiro a partir de v
4
.
3. A matriz de adjacencia para um grafo G, com vertices v
1
, ..., v
6
e:
A =
_
_
_
_
_
_
_
_
0 0 1 0 1 1
0 0 0 1 0 1
1 0 0 1 1 1
0 1 1 0 0 1
1 0 1 0 0 0
1 1 1 1 0 0
_
_
_
_
_
_
_
_
(a) Achar o passeio de Euler de G.
194 CAP

ITULO 8. GRAFOS E

ARVORES
(b) Construir um arvore de caminhos mais curtos de v
4
.
(c) Achar o vertice, ou vertices, mais distantes do vertice v
4
.
4. Tres piratas e tres marinheiros estao no lado esquerdo de um rio, e de-
sejam atravessa-lo para o lado direito, onde se encontra enterrado um
tesouro. Existe um barco que carrega duas pessoas. Este barco pode ser
dirigido por uma unica pessoa. O rio esta infestado de crocodilhos. Se
o n umero de piratas superar o n umero de marinheiros eles os jogarao no
rio, caso contrario os marinheiros estarao salvos. Modelar o problema
com um grafo e apresentar uma sequencia de movimentos para transferir
salvas, para o outro lados, as seis pessoas.
5. Desenhar os grafos correspondentes `as matrizes de adjacencia:
A =
_
_
_
_
0 1 1 0
1 0 0 1
1 0 0 1
0 1 1 1
_
_
_
_
B =
_
_
_
_
_
_
0 1 0 1 0
1 0 1 0 1
1 1 0 1 0
1 0 1 0 1
0 1 0 1 0
_
_
_
_
_
_
Calcular A
2
, B
2
e interpretar a informacao que eles dao sobre os passeios
nos grafos.
Captulo 9
Contar
O calculo da complexidade de tempo de um algoritmo requer a contagem do
n umero de vezes que alguma etapa basica ou operacao e repetida. O calculo
de uma probabilidade teorica, usualmente, requer contar o n umero de ele-
mentos num subconjunto. Contar, tambem, e importante por razoes menos
direta. Por exemplo, contar as etapas de um algoritmo nos da entendimento
da estrutura do algoritmo. Ao contar procuramos identicar ou impor algu-
ma estrutura sobre o conjunto dos objetos que estao sendo contados. Neste
captulo, examinaremos o processo de contar e aprenderemos a usar tecnicas
que simplicam a contagem. O captulo conclui com algoritmos para a geracao
de arranjos de um conjunto de objetos e para a geracao de subconjuntos de
um conjunto.
A maioria das pessoas pensam da contagem como sua primeira experiencia
em matematica. A habilidade de contar e vista como um habilidade basica,
apesar de nao ser facil denir contar satisfatoriamente. Recitar os n umeros,
um, dois, tres, ..., nao e, por si so, contar, nem mesmo necessario para
contar, desde que uma pessoa usando uma linguagem diferente usaria nomes
diferentes.
Num nvel mais profundo, a descoberta do paradoxo reexivo(que o con-
junto de todos os conjuntos, que nao sao membros de si proprios, e auto-
contraditorio, em termos) levou a uma nova abordagem dos fundamentos da
matematica. A abordagem construtiva comeca com a aritmetica recursiva.

E esta abordagem que parece oferecer o maximo `a computacao.


195
196 CAP

ITULO 9. CONTAR
9.1 Tecnicas de contar
N umeros e contar
Um n umero natural, x, neste esquema construtivo, e denido por;
x e um n umero, se e somente se, ele for 0 ou o sucessor de um
n umero.
Nos e pedido para aceitar que 0 e um n umero, e se x e um n umero, entao
seu sucessor (x)

= x + 1 tambem e um n umero. Os n umeros inteiros sao,


entao, denidos, construtivamente, isto e, por um algoritmo, pela sequencia:
0, sucessor(0), sucessor(sucessor(0)), ..
Os nomes dos n umeros dependem do esquema de traducao. Por exemplo,
podemos traduzir a sequencia para:
0,1,2,3,...
Ou 0,1,10,...(binario) ou null, ein,zwei,...
Nos foi pedido para aceitar muito pouco. Mesmo com a inclusao das ope-
racoes aritmeticas, tambem denidas recursivamente, todos os processos da
aritmetica classica podem ser desenvolvidos.
Para a contagem comecar e necessario que os objetos a serem includos na
contagem sejam identicados sem ambiguidade(uma possilibilidade e identi-
car os objetos a serem excludos da contagem). Portanto, os objetos a serem
contados constitui um conjunto.
As tecnicas de contar foram desenvolvidas para a estrutura particular im-
posta no conjunto e, portanto, pode ser classicada por essa estrutura. Deve-
se observar que a denicao de n umero produz os n umeros naturais e que o
processo de contar so pode ser aplicado a conjuntos nitos.
Contar pelo sucessor
O metodo de contar pelo sucessor assume nada sobre a estrutura do conjunto
que vai ser contado.
Seja A o conjunto a ser contado. O n umero de elementos em A e escrito
por n(A) ou [A[. Contar o n umero de elementos num conjunto A e denido
recursivamente por:
9.1. T

ECNICAS DE CONTAR 197


contador 0
enquanto condicao
ac ao 1
ac ao 2
contadorcontador + 1
Figura 9.1: Um fragmento de algoritmo.
n(A) =
_
0 se A =
n(A l) + 1 se A ,=
onde l e um elementos de A.
A expressao n(Al)+1 e exatamente a funcao sucessor, com a qual de-
nimos n umero na secao anterior, e denida para 0 e todos os outros naturais.
A armativa n() = 0 declara que o n umero de elementos no conjunto vazio e
zero, uma assertiva muito razoavel.
Denir contar como uma funcao(de conjuntos para n umeros) e equiva-
lente a fornecer um algoritmo para contar os elementos de um conjunto. Esse
algoritmo e ilustrado informalmente no exemplo a seguir.
Exemplo 163 Contar o n umero no conjunto A = a, b, c.
n(A) = n(a, b) + 1
= (n(a) + 1) + 1
= ((n() + 1) + 1) + 1
= ((0 + 1) + 1) + 1
O processo de contar e completo. Para representar um n umero
como um numeral, e preciso uma rotina de traducao. Em Portu-
gues isto pode ser dado por tres, em Ingles por three ou num
laboratorio de computacao por 11(binario).
Exemplo 164 No algoritmo da gura 9.1 a variavel contador conta
o n umero de vezes que o algoritmo passa pelo laco enquanto.
O n umero produzido por contador quando o algoritmo for executa-
do, reete elmente a denicao de n umero dado acima.
198 CAP

ITULO 9. CONTAR
Contando os membros de uma sequencia
Suponha que os elementos do conjunto A, a ser contado, forma uma sequencia.
Entao, deve ser possvel achar uma funcao injetiva que mapeando o conjunto
A sobre o conjunto 1, 2, 3, ..., n. Neste caso, o n umero de elementos em A e n.
Exemplo 165 Sejam m, n inteiros, com m n. Quantos inteiros
existem de m a n, incluindo n?
Solucao: A questao e para que contemos os membros da sequencia
m, m+ 1, m+ 2, ..., n. A funcao subtrair m segue da funcao adi-
cionar 1 mapeando a sequencia um a um no conjunto
1, 2, 3, ..., (n m+ 1)
Portanto, o n umero de inteiros na sequencia original e n m+ 1.
Exemplo 166 Quantos n umeros de dois dgitos sao m ultipols de 4?
Solucao: O conjunto de dois dgitos podem ser arranjados como a
sequencia
s =< 10, 11, 12, ..., 99 >
A funcao dividir por 4 mapea a sequencia um a um sobre
S

=< 2, 5; 2, 75; ...; 24, 75 >


Os m ultipos de 4 na sequencia S corresponde, um a um, aos intei-
ros em S

. Denamos o conjunto dos inteiros em S

como sendo
S

, onde
S

=< 3, 4, ..., 24 >


O conjunto S

e mapeado, pela funcao subtrair 2 no conjunto


1, 2, 3, ..., 22
Portanto, existem 22 n umeros, com dois dgitos, m ultiplos de 4.
9.1. T

ECNICAS DE CONTAR 199


Exemplo 167 Contar o n umero de elementos no conjunto
A = 93, 95, ..., 855
consistindo de todos os n umeros mpares de 93 a 855, inclusive.
Solucao: A funcao subtrair 91 mapea A, um a um, sobre
A

= 2, 4, 6, ..., 764
A funcao dividir por 2 mapea A

, um a um, sobre
A

= 1, 2, 3, ..., 382
Consequentemente, existem 382 n umeros em A.
Contar produtos cartesianos
Proposicao 19 O n umero de elementos no produto cartesiano AB e n(A)
n(B).
Esta proposicao e referida, frequentemente, pela regra do produto. Ela
pode ser estendida para qualquer n umero de conjuntos, usando uma prova
por inducao matematica.
A prova da proposic ao 19 pode ser baseada na introduc ao de uma va-
riavel, contador, no algoritmo para construir os pares ordenados (a, b) de
A B.
contador 0
para i = 1 ate n(A)
para j = 1 ate m(B)
imprimir (a
i
, b
i
)
contador contador + 1
Para cada um das n(A) escolhas para a
i
, o par (a
i
, ) sera completado por
n(B) escolhas de b
j
, para constituir o par (a
i
, b
j
). No m do processo terao
sido construdos n(A) n(B) pares.
200 CAP

ITULO 9. CONTAR
Exemplo 168 Quantas sequencias binarias distintas de 8 dgitos
sao possveis?
Solucao: Cada dgito na sequencia e escolhido do conjunto B =
0, 1, com n(B) = 2.
As sequencias distintas correspondem `as 8-tuplas do produto car-
tesiano
B B B B B B B B
e pela proposicao 19(estendida) existem 2
8
deles. Portanto, sao
possveis 256 sequencias binarias de oito dgitos.
Contando subconjuntos
A tecnica de contar descrita nesta secao depende de alguma estrutura de
subconjunto a ser dado ao conjunto que pretendemos contar. As tecnicas de
contagem sao aplicac oes das seguintes proposicoes.
Proposicao 20 Suponhamos que o conjunto A esteja parcionado em celulas
A
1
, A
2
, ..., A
n
. Entao,
n(A) = n(A
1
) +n(A
2
) +... +n(A
n
)
Este teorema, `as vezes, e chamado a regra da adicao. Ele pode ser
provado por inducao matematica, sobre n.
Proposicao 21 Seja A um conjunto tendo complemento A

, relativo a um
conjunto universal U. Entao,
n(A) = n(U) n(A

)
Esta proposicao, `as vezes, e chamada a regra do complemento. Ela e um
colorario da proposicao 20.
Proposicao 22 (Inclusao/Exclusao) Sejam A, B e C conjuntos nitos. Entao,
n(A B) = n(A) + n(B) n(A B)
9.1. T

ECNICAS DE CONTAR 201


e
n(A B C) = n(A) + n(B) + n(C) n(B C) n(C A)
n(A B) + n(A B C)
Esta proposicao, chamada inclusao/exclusao, pode ser generalizada para
qualquer n umero de conjuntos. A prova e por inducao matematica, sobre o
n umero de subconjuntos.
Exemplo 169 Quantos inteiros de 1 a 100 tem um 7 na sua re-
presentacao decimal?
Solucao 1: Parcionemos A em celulas A
i
, onde,
A
i
e o conjunto dos n umeros de 10i a 10i +9, que contem um dgito
7.
Portanto, A
0
= 7, A
1
= 17, ..., A
7
= 70, 71, ..., 79, ...
A
9
= 97.
e n(A) = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 10 + 1 + 1 = 19
A solucao 1 impoe uma particao no conjunto e utiliza a proposic ao
20.
Solucao 2: Vamos escolher o conjunto universal como sendo, U =
1, 2, ..., 100.
Agora, U esta em correspondencia um a um com 00, 01, 02, ..., 99,
o conjunto de todos os pares de dgitos. A correspondencia e obvia
exceto, talvez, a correspondencia entre 00 e 100.
n(U) = 10 10 = 100
n(A

) = 9 9 = 81
n(A) = n(U) n(A

) = 100 81 = 19
A solucao 2 conta o conjunto complementar e, entao usa a propo-
sicao 21.
Solucao 3: Seja X um subconjunto de A no qual os n umeros com
dois dgitos contem 7. Seja Y o subconjunto de A no qual os
n umeros com um dgito e 7.
202 CAP

ITULO 9. CONTAR
Entao, X Y e o conjunto no qual, ambos, os dgitos nas casas de
dez e unitarios sao 7.
Agora,
n(X Y ) = n(X) +n(Y ) n(X Y )
= 9 9
= 10 + 10 1
= 19
Esta solucao impoe subconjuntos sobre A e usa a proposicao 22.
O princpio da casa de pombos(The pigeonhole principle)
O princpio da casa de pombos e aqui apresentado em duas versoes.
Proposicao 23 (Princpio da casa de pombos) Se mais do que n pombos sao
colocadas em n caixas, no mnimo uma caixa contem dois ou mais pombos.
A prova e por contradicao.
Exemplo 170 Dados quatro inteiros, mostrar que no mnimo dois
deles tem o mesmo resto quando divididos por 3.
Solucao: Os restos possveis quando dividimos por tres sao 0, 1 e
2. Rotulemos tres caixas 0, 1 e 2. Coloquemos os quatro
inteiros nas tres caixas. Entao uma das caixas deve ter no mnimo
dois inteiros. Isto e, no mnimo dois inteiros tem o mesmo resto
quando dividido por tres.
Exemplo 171 Dados tres inteiros, mostrar que deve existir dois
cuja soma e par.
Solucao: Cada inteiro e par ou mpar. Apliquemos o princpio da
casa de pombos, com n = 2, as caixas rotuladas par e mpar e
tres pombos correspondendo a tres inteiros. Entao, no mnimo
dois inteiros sao pares ou, no mnimo dois inteiros sao mpares.
Em cada caso, existem dois inteiros cuja soma e par.
Uma visao mais geral do princpio da casa de pombos estende a ideia de
contar, usando uma funcao um a um, como vimos acima.
9.1. T

ECNICAS DE CONTAR 203


Proposicao 24 (Princpio da casa de pombos 2) Seja f uma funcao com
domnio S e contradomnio T, e sejam S e T conjuntos nitos. Se para
algum inteiro k,
n(S)
n(T)
> k
Entao, para algum t T, mais que k elementos de S sao mapeados em t
pela funcao f.
Novamente a prova e por contradicao.
Exemplo 172 Seja f : S T uma funcao do conjunto S no
conjunto T. Seja n(S) = 7 e n(T) = 3. Entao, um dos t
1
, t
2
e t
3
e a
imagem de no mnimo tres membros do conjunto s
1
, s
2
, ..., s
7
.
Pois, suponhamos que nenhum dos t
1
, t
2
e t
3
foi a imagem de mais
que dois membros de S. Entao, S nao poderia ter mais que 23 = 6
elementos.
Contradicao: O princpio da casa de pombos 2 se aplica a esse
exemplo.
Exemplo 173 Os n umeros 1,2,3,...,10 sao colocados ao redor de
um crculo numa ordem aleatoria. Entao, a soma de no mnimo
um conjunto de tres n umeros consecutivos e no mnimo 17.
Solucao: Seja a sequencia de n umeros em torno do crculo
a
1
, a
2
, ..., a
10
e seja as somas dos conjuntos de tres n umeros consecutivos
t
1
, t
2
, ..., t
10
.
A soma dos primeiros dez n umeros e 55. A seguinte tabela mostra
as somas de cima para baixo.
Soma
a
1
a
2
... a
10
55
a
2
a
3
... a
1
55
a
3
a
4
... a
2
55
t
1
t
2
... t
10
165
204 CAP

ITULO 9. CONTAR
Agora, vamos construir uma funcao de um conjuunto S de 165
objetos para as dez somas de tres n umeros t
1
, ..., t
10
, formando
T.
n(S)
n(T)
=
165
10
> 16
Portanto, pela proposicao 24, o princpio da casa de pombos,
existe no mnimo um total de tres n umeros sucessivos, t
i
, que e
no mnimo 17.
O raciocnio combinatorio
A arte do raciocnio combinat orio e encontrar uma correspondencia entre um
problema de contar que estamos tentando resolver e um problema de contar
para o qual conhecemos a resposta. Em muitos casos, a estrutura que esta-
mos procurando pode ser encontrada reformulando o problema, usando novas
palavras. De fato, o argumento combinatorio, com frequencia, e apresentado
como um argumento de palavras, mais que como um argumento algebrico.
Um modelo para contar
O modelo descrito, abaixo, aparece em muitas formas, em diferentes questoes.
Esse modelo e usado para identicar quatro tipos basicos de problemas. Para
cada tipo de problema, e desenvolvida uma formula de contar.
O modelo
Suponhamos que temos um conjunto com n objetos, a
1
, ..., a
n
, e desejamos
contar o n umero de maneiras nas quais r objetos, do conjunto, podem ser
escolhidos. Para especicar, sem ambiguidade, um problema de contar, e
necessario estabelecer se:
1. e importante a ordem dos elementos escolhidos, e
2. o mesmo objeto pode ser escolhido, repetidamente.
o qua leva a quatro tipos de problemas de contar.
Para simplicar a explicacao, vamos considerar a escolha de dois elemen-
tos(isto e, r = 2) do conjunto a, b, c(isto e, n = 3).
9.1. T

ECNICAS DE CONTAR 205


Problema 9 A ordem e importante na escolha.

E permitido repeti cao.
As escolhas sao chamadas 2-sequencias. As 2-sequencias possveis, usan-
do as letras a, b, c sao: aa, ab, ac, ba, bb, bc, ca, cb, cc. Existem tres escolhas para
cada termo, dando 3 3 sequencias, no todo.
Generalizacao: O n umero de r-sequencias(a ordem e importante, as re-
peti coes sao permitidas) que podem ser feitas de um conjunto com n objetos
distintos, e o resultado de n escolhas para cada das r posicoes na sequencia.
Existem n
r
sequencias, no todo.
Problema 10 A ordem e importante na escolha. Nao e permitido repiticao.
As escolhas sao chamadas 2-permutacoes. As 2-permutacoes possveis
podemos formar das letras do conjunto a, b, c sao ab, ac, ba, bc, ca, cb. Existem
tres maneira de escolher a primeira letra na permuta cao e, para cada uma
dessas, dois maneiras para escolher a segunda letra. Existem, ao todo, 3 2
permuta coes ou arranjos.
Generalizacao: O n umero de r-permutacoes(a ordem e importante, nao
repetic ao) que podemos formar de um conjunto de n objetos e
P(n, r) = n(n 1)...(n r + 1)
Outros smbolos podem ser usados, como P
n
r
.
Exemplo 174 Quantas maneiras um clube de dez pessoas pode ele-
ger um presidente, um secretario e um tesoureiro?
Solucao: Adimitamos que uma pessoa nao pode assumir dois pos-
tos e que cada permutacao de tres pessoas escolhidas, dos dez,
corresponde a uma escolha do presidente, secretario e tesoureiro.
P(10, 3) = 10 9 8
Isto e, tendo escolhido um presidente(em 10 maneiras) existem
nove escolhas para o secret ario e oito para o tesoureiro.
Problema 11 A ordem nao e importante. Nao e permitido repeticao.
As escolhas sao chamada 2-subconjuntos. Os possveis 2-subconjuntos de
a, b, c sao ab, ac, bc. O smbolo para o n umero de 2-subconjuntos que podem
ser escolhidos de um conjunto de tres objetos e C(3, 2). A letra C vem da
palavra combinacao, que e um nome mais antigo para esse tipo de escolha.
206 CAP

ITULO 9. CONTAR
Generalizacao: O n umero de r-subconjuntos, com frequencia, chamado
r-combinacoes, que podemos fazer de um conjunto de tres objetos e escrito
C(n, r). Podem usar outros smbolos como, C
n
r
.
A funcao valor C(n, r) pode ser obtida de P(n, r), observando que os r
objetos podem ser arrados em r(r 1)(r 2)...e 2 1 maneiras. Mas, esses
arranjos nao sao contados como diferentes no calculo de C(n, r). Portanto,
C(n, r) =
n(n 1)...(n r + 1)
r(r 1)...2 2 1
Problema 12 A ordem nao e importante e sao permitidas repeticoes.
As escolhas sao chamadas 2-multiconjuntos. Os possveis 2-multiconjuntos
do conjunto a, b, c sao aa, ab, ac, bb, bc, cc. Consideremos tres caixas rotuladas
a, b, c(gura 9.2).
Temos duas letras para escolher, mas podemos escolher essas letras da
mesma caixa. Modelamos a escolha colocando duas bolas na caixa. Por
exemplo, duas bolas na caixa b geraria bb. Uma bola em a e uma bola em
b, geraria ab. A selecao bb pode ser lida como uma palavra SXXS, onde
S representa uma parede entre duas caixas e X representa uma bola. Nesta
notacao, ab seria representada pela palavra XSXS.
Achar o n umero de selecoes e equivalente a achar o n umero de palavras
que podem ser feitas de quatro smbolos SSXX, as letras Ss representando
as (3 1) paredes, separando as caixas a, b, c e os Xs, representando as duas
bolas. Uma palavra e determinada colocando-se o X em duis das (3 1 + 2)
posi coes. As outras posi coes sao preenchidas, automaticamente, pelos Ss.
Isto pode ser feito em C(3 1 + 2, 2) = C(4, 2) = 6 maneiras.
Generalizacao: O n umero de r-multiconjuntos que podem ser escolhidos
de um conjunto de n objetos e C(n 1 +r, r).
A escolha de um r-multiconjunto e equivalente a colocar r Xs em n caixas
rotuladas a
1
, ..., a
n
, como na gura 9.3. Isto e equivalente a arranjar r Xs e
(n1) Ss, como uma palavra. A palavra e determinada precisamente pela
escolha das posicoes para os r Xs. Essa escolha pode ser feita em C(n1+r, r)
maneiras.
Exemplo 175 Os sinais sao dados atraves de cinco bandeiras num
unica poste. As bandeiras de tres cores estao disponveis nu-
ma quantidade suciente para ter quantas bandeiras forem pre-
cisas, de qualquer cor. As cores sao sempre escolhidas na mes-
ma ordem(logo, a ordem nao e importante). Quantos sinais sao
possveis.
9.1. T

ECNICAS DE CONTAR 207


Figura 9.2: Multiconjuntos.
Figura 9.3: r-Multiconjuntos de a
1
, a
2
, ...a
n
.
Solucao: O problema e encontrar o n umero de 5-multiconjuntos
de um conjunto de tres objetos. A solucao e
C(3 2 + 5, 5) = 21
A expressao n(n1)...3 2 1 aparece com tanta frequencia, em problemas
combinatorios, que ela e denida como uma funcao
Denicao 71 (Fatorial)
fatorial: N N
fatorial(n)=
_
1 se n = 0
n fatorial(n 1) se nao
Escrevemos fatorial(n) = n!
Exemplo 176 Computar 6!
6! = 6 5! = 6 5 4!
= ...
= 6 5 4 3 2 1 1
= 720
208 CAP

ITULO 9. CONTAR
Subconjuntos vazios
Os modelos de contar examinados acima, assumem implicitamente que r e n
sao inteiros e 1 r n. Consideremos, agora, o caso r = 0. Um 0-subconjunto
seria um conjunto vazio. O n umero de subconjuntos vazios de a
1
, ..., a
n
e
exatamente 1. Portanto, gostaramos que C(n, 0) = 1. Analogamente, e usual
para o matematica aceitar que existe uma 0-sequencia, uma 0-permutacao e
um 0-multiconjunto, para qualquer conjunto a
1
, ..., a
n
.
Agora, os resultados dessa secao podem ser estabelecidos formalmente co-
mo proposic oes, cujos provas sao os argumentos feitos acima.
Proposicao 25 Para os inteiros r, n 0, o n umero de r-sequencias que podem
ser feitas de um conjunto de n objetos e n
r
.
Prova: O caso r = 0. n
0
= 1, dar uma 0-sequencia, concordando com
nossa hipotese.
O caso r 1. O argumento esta dado no Problema 9.
Proposicao 26 Para os inteiros r, n 0, o n umero de r-permuta coes que
podem ser feitas de um conjunto de n objetos e:
P(n, r) =
_
n(n 1)...(n r + 1)(i.e., rfatores) se n r 1
1 se r = 0
Usando fatorial, o teorema pode ser estabelecido:
P(n, r) =
n!
(n r)!
, onde n r 0.
Proposicao 27 O n umero de r-subconjuntos(i.e, r-combinacoes) de um con-
junto de n objetos, onde 0 r n, e dado por:
C(n, r) =
P(n, r)
r!
=
n!
r!(n r)!
Prova: O caso r=0. C(n, 0) = 1, que concorda com a nossa hipotese de
que existe exatamente um 0-subconjunto, para quaquer conjunto.
Para o caso r 0, ja foi feito o argumento no problema 11.
Proposicao 28 O n umero de r-multiconjuntos que podemos formar de um
conjunto com n objetos, onde 0 r e:
9.1. T

ECNICAS DE CONTAR 209


_
C(n 1 +r, r) se n 1
1 se n = 0
Prova: O caso n=0. C(n 1 + 0, 0) = 1 ou, se n = 0, o n umeros de
0-multiconjuntos e, por conven cao, 1. Portanto, o resultado concorda com
hipotese de que existe exatamente um 0-multiconjunto, para qualquer con-
junto.
Para o caso r 0, ja foi argumentado, acima.
O raciocnio combinatorial
As proposicoes de 29- 31, abaixo, podem ser provadas algebricamente. En-
tretanto, daremos argumentos verbais, para enfatizar a especie de raciocnio
combinatorial de que estamos tratando.
Proposicao 29 Para os inteiros n, r tais que 0 r n:
C(n, r) = C(n, n r)
Prova: Consideremos um conjunto com n objetos, do qual escolhemos os
subconjuntos, para formar um conjunto universo.
Entao, a cada subconjunto de r elementos corresponde, exatamente, um
subconjunto complemento com nr elementos. Existe uma correspondencia
entre os r-subconjuntos e os seus complementos, que sao todos os n r-
subconjuntos. Portanto, o n umero de cada um e o mesmo. Mas, isto e o
que diz o enunciado da proposicao, pois C(n, r) conta todos os r-subconjuntos
e C(n, n r) conta todos os (n r)-subconjuntos.
Proposicao 30 Para os inteiros n 0:
C(n, 0) +C(n, 1) +... +C(n, n) = 2
n
Prova: Consideremos o conjunto S = a
1
, a
2
, ..., a
n
.
O n umero de i-subconjuntos de S e C(n, i). O lado esquerdo adiciona
o n umero de 0-subconjuntos, 1-subconjuntos, 2-subconjuntos, etc., ate os
n-subconjuntos. Isto e, o lado esquerdo nos da o n umero de todos os sub-
conjuntos, de todos os tamanhos possveis. Uma outra maneira de contar
os subconjuntos e associa-los com strings binarios, de n-dgitos, pela corres-
pondencia x
i
esta no subconjunto, se o i-esimo dgito do string binario for
210 CAP

ITULO 9. CONTAR
1 e, x
i
nao esta no subconjunto se o i-esimo dgito for 0. Duas escolhas para
cada dgito nos da 2
n
strings binarias e, portanto, 2
n
subconjuntos. Logo,
n

i=0
C(n, i) = 2
n
Proposicao 31 Para os inteiros n, k tais que 0 k n:
C(n, k) = C(n 1, k) +C(n 1, k 1)
Prova: Consideremos um conjunto U = a
1
, a
2
, ..., a
s
, ..., a
n
, no qual a
s
e
um elemento especial.
Todos os subconjuntos com k elementos( os k-subconjuntos) podem ser
parcionados em duas classes: aqueles que contem a
s
e aqueles que nao contem.
O n umero de todos os k-subconjuntos e C(n, k).
O n umero de k-subconjuntos que nao contem a
s
e o n umero de maneiras
de escolher k elementos de U a
s
, isto e, C(n 1, k 1).
O n umero de subconjuntos que contem a
s
e o n umero de maneiras de
escolher os outros k 1 elementos U a
s
, isto e, C(n 1, k 1).
Portanto, C(n, k) = C(n 1, k) +C(n 1, k 1).
Juntando com C(n, 0) = 1 e C(n, n) = 1, a formula para C(n, k), dada na
proposicao 31, nos fornece um esquema recursivo para o calculo de C(n, k).
Os exemplos a seguir, tratam com problemas que, supercialmente, pare-
cem nao ter nada em comum. No entanto, cada um deles pode ser traduzido
num problema com estrutura similar `aquele do primeiro exemplo. A identi-
cacao da similaridade estrutural e outro aspecto do raciocnio combinatorial.
Os problemas sao todos do tipo sequencia com repeticao.
Exemplo 177 Quantas palavras diferentes de oito letras podemos
formar com cinco A

s, dois B

s e um C?
Solucao: Suponha, primeiro, que as oito letras sao todas diferen-
tes, indicando isso colocando temporariamente subscritos nas le-
tra.
A
1
A
2
A
3
A
4
A
5
B
1
B
2
C
Na hipotese de as letras serem distintas, existem 8! arranjos dife-
rentes. Mas os As contribuem com 5! arranjos, para cada arranjo
9.1. T

ECNICAS DE CONTAR 211


das outras letras e os Bs cotribuem com 3! arranjos, para ar-
ranjo das outras letras. Por questao de completeza observe que o
C contribui com 1! arranjos, para cada arranjo das outras letras.
Removendo os subescritos sobram
8!
5!2!1!
arranjos das letras, cada uma representando uma palavra distinta.
Uma maneira alternativa de expressar a resposta do exemplo anterior e:
C(8, 5) C(3, 2).
Esta forma da resposta e produzida argumentando que os As podem ser
colocados em cinco das oito posicoes disponveis, em C(8, 5) maneiras. Os Bs
podem, entao, ser colocados nos tres lugares restantes, em C(3, 2) maneiras.
Existem, agora, somente uma maneira de colocar a terceira letra. Portanto,
o n umero de maneira e C(8, 5) C(3, 2) 1.
Exemplo 178 Quantas strings binarios de oito dgitos diferentes
tem cinco 0s e tres 1s?
Solucao: Nesta questao existem oito smbolos, cinco de uma especie
e tres de uma outra. A questao pede para encontrar todos as pa-
lavras de oito letras que podem ser formadas dos smbolos. Como
no exemplo 177 podemos colocar, temporariamente, subscrito.
0
1
0
2
0
3
0
4
0
5
1
1
1
2
1
3
Na hipotese de que os smbolos sejam distintos existem 8! arranjos
diferentes. Mas, os 0s contribuem com 5! arranjos, para cada
arranjo dos 1s e os 1s contribuem com 3! arranjos, para cada
arranjo do 0s. Portanto, existem
8!
5!3!
strings binarios diferentes.
212 CAP

ITULO 9. CONTAR
Figura 9.4: O n umero de solucoes.
Uma maneira alternativa de apresentar a resposta do exemplo anterior e:
C(8, 5). Esta forma de resposta e produzida argumentando que os 0s podem
ser colocados em cinco das oito posic oes disponveis em C(8, 5) maneiras. Os
1s podem, entao ser colocados nos tres lugares restantes, numa maneira.
Exemplo 179 Encontrar o n umero de solucoes da equacao
x + y = 10
onde, x, y, z sao inteiros e x, y, z 0. As solucoes podem ser geradas
colocando 10 bolas em tres caixas rotuladas x, y, z(gura 9.4).
Representamos as bolas pela letra B e as paredes entre as caixas
pela letra S.
Entao, cada palavra formada dos 12 smbolos representa uma so-
lucao da equacao.
Por exemplo, BBSBBBSBBBBB representa x = 2, y = 3, z = 55 e
BBBBSSBBBBBBrepresenta x = 4, y = 0, z = 6. O argumento do
exemplo 177 mostra que o n umero de solucoes da equa cao e
12!
10!2!
Exemplo 180 Quantas n umeros de 1 a 10 000 a soma dos dgitos
e 7?
Solucao: O problema e equivalente a colocar sete bolas em quatro
caixas.(gura 9.5).
Solucao: Como no exemplo 179, representemos as bolas pela letra
B e as paredes entre as caixas representemos pela letra S. Cada
palavra de dez smbolos representa uma solucao da questao:
9.2. O BINOMIAL E TEOREMAS MULTINOMIAIS 213
Figura 9.5: Os n umeros de 1 a 10 000.
Por exemplo, BBSBBBBSBS representa 2410 e SSBBBBBBSB
representa 61.
O argumento do exemplo 177 nos da:
10!
7!3!
=
10 9 8
3 2 1
= 10 3 4 = 120 palavras
Existem 120 n umeros de 1 a 10 000, com uma soma de dgitos 7.
Exemplo 181 O computador aloca trabalhos de quatro impressoras.
Dados 12 jobs para ser distribudos, de modo que a impresora P
tem 5 jobs, a impressora Q 3 jobs e a impressora R tem dois jobs,
achar o n umero de maneiras que a distribuicao pode ser feita.
Solucao: O problema pode ser visto como o o n umero de palavras
que podem ser formadas das letras PPPPPQQQRRSS. A resposta
e
12!
5!3!2!@!
.
9.2 O binomial e teoremas multinomiais
O teorema binomial
Nesta secao consideraremos a expansao de expressoes como (a +b)
n
, onde n e
um inteiro positivo, usando uma abordagem combinatorial e nao algebra.
Vamos ver o que podemos aprender da expansao (a +b)
n
.
214 CAP

ITULO 9. CONTAR
(a +b)
3
= (a +b)(a +b(a +b) (1)
= a
3
+ 3a
2
b + 3ab
2
+b
3
(2)
= C(3, 0)a
3
b
0
(3)
= +C(3, 1)a
2
b
1
(4)
= +C(3, 2)a
1
b
2
(5)
= +C(3, 3)a
0
b
3
(6)
A linha (1) estabelece o que queremos dizer com os smbolos no lado es-
querdo da equacao.
Cada termo na linha (2) e construdo escolhendo a de m parenteses e b de
n parenteses da forma
a
m
b
k
, onde m + n = 3.
O termo 3a
2
b e construdo escolhendo a dos dois parenteses e b de um
parentese. A selecao de um parentese do qual tiramos b pode ser feito em
C(3, 1) = 3 maneiras e a escolha dos parenteses dos quais tiramos a sao, entao,
automaticamente os dois da esquerda.
O termo 3a
2
corresponde a C(3, 1)a
2
b
1
(linha(4)).
O termo a
3
e construdo escolhendo a de tres parenteses e b de nenhum. O
termo a
3
corresponde a C(3, 0)a
3
b
0
(linha (3)).
Em geral, os termos sao da forma C(3, k)a
m
b
k
, onde m+k = 3.
Concisamente, o resultado pode ser estabelecido como:
(a +b)
3
=
3

k=0
C(3, k)a
m
b
k
, onde m+k = 3
ou
(a +b)
3
=
3

k=0
C(3, k)a
3k
b
k
O argumento pode ser generalizado para qualquer potencia inteira positiva,
por inducao matematica, atraves da seguinte proposicao.
Proposicao 32
(a +b)
n
= (a +b)(a +b...(a +b)
= C(n, 0)a
n
b
0
+C(n, 1)a
n1
b
1
+... +C(n, n)a
0
b
n
=

n
k=0
a
m
b
k
, m+k = n
=

n
k=0
C(n, k)a
nk
b
k
9.2. O BINOMIAL E TEOREMAS MULTINOMIAIS 215
Exemplo 182 Escrever a expansao de (x +
1
x
)
5
.
Solucao:
(x +
1
x
) = x
5
+C(5, 1)x
4
(
1
x
) +C(5, 2)x
3
(
1
x
)
2
+...
= x
5
+ 5x
3
+ 10x + 10
1
+ 5x
3
+x
5
Exemplo 183 Escrever o quociente do termo x
11
em (3x + 2
2
)
9
.
Solucao:
(3x + 2x
2
)
9
=

9
i=0
C(9, i)(3x)
9i
(2x
2
)
i
=

9
i=0
C(9, i)3
9i
2
i
x
9+i
Se 9 +i = 11, entao i=2. O coeciente de x
11
e:
C(9, 2)3
7
2
2
=
9 8
2 1
3
7
2
2
= 314928
Exemplo 184 Prove que

kmpar
C(n, k) =

k par
Cn, k.
Solucao: Seja a=1 e b=-1, na proposi cao 32.
Entao, obteremos:
0 = C(n, 0) C(n, 1) +C(n, 2) ... + (1)
n
C(n, n)
Portanto, a soma dos C(n, k), para k mpar e igual a soma dos
C(n, k), para k par.
O teorema multinomial
O teorema binomial pode ser generalizado para uma expressao multinomial
como segue.
Proposicao 33 (Multinomial) Para todo n, inteiro positivo,
(x
1
+x
2
+... +x
m
)
n
e a soma de todos os termos da forma
216 CAP

ITULO 9. CONTAR
n!
r
1
!r
2
!...r
m
!
x
r
1
x
r
2
2
...x
r
m
m
Para todos as solucoes, inteiras nao negativas, de r
1
+r
2
+... +r
m
= n.
Prova: Um termo na expansao e obtido do produto
(x
1
+x
2
+... +x
m
)(x
1
+x
2
+... +x
m
)...(x
1
+x
2
+... +x
m
)
selecionando um termo de cada um dos n parenteses.
O termo em
x
r
1
1
x
r
2
2
...x
r
m
m
e obtido selecionando x
1
de r
1
parenteses, x
2
de r
2
parenteses e assim por
diante.
Cada selecao corresponde a uma palavra construda de r
1
letras x
1
, r
2
letras x
2
, e assim por diante. A selecao pode ser dada em
n!
r
1
!r
2
!...r
m
!
maneiras.
Exemplo 185 Espandir (x +y +z)
3
pela proposicao multinomial.
Solucao:
(x + y + z)
3
=

3!
p!q!r!
x
p
y
q
z
r
Para toda solucao inteira de p+q+r=3, p, q, r 0.
Obtemos
(x +y +z)
3
= x
3
+y
3
+z
3
+ 3x
2
y + 3xy
2
+ 3y
2
z + 3yz
2
+ 3x
2
z
+3xz
2
+ 6xyz
Existem dez termos no todo, que e o n umero de solucoes inteiras
nao-negativas de p +q +r = 3.
9.3. ALGORITMOS 217
Exemplo 186 Quantos termos existem na expansao de (x+2y+3z)
5
,
pela proposicao multinomial.
Solucao: O problema e equivalente a encontrar o n umero de so-
lucoes inteiras nao-negativas de p +q +r = 5.
A resposta e
7!
5!2!
= 21.
Exemplo 187 Encontrar o coeciente de x
5
na expansao (1 + 3x +
2x
2
)
4
.
Solucao:
O termo geral da expansao e
4!
p!q!r!
1
p
(3x)
q
(2x)
r
, p +q +r = 4 p, q, r 0
=
4!
p!q!r!
(3)
q
2
r
x
q+2r
Os termos em x
5
sao dados pelas soluc oes inteiras de
p +q +r = 4, q + 2r = 5 satisfazendo 0 p, q, r 4.
As solucoes sao p = 1, q = 1, r = 2 e p = 0, q = 3, r = 1.
O coeciente de x
5
e
4!
1!2!
3 2
2
+
4!
3!1!
3
3
2 = 360.
9.3 Algoritmos
O tema principal deste captulo e contar. Entretanto, em alguns problemas
e util gerar as permutac oes, os subconjuntos ou outros objetos a serem cons-
trudos. Nesta secao, apresentaremos alguns algoritmos para gerar subcon-
juntos e um algoritmo para gerar permutacoes.
218 CAP

ITULO 9. CONTAR
Subconjuntos de um conjunto
Algoritmo 10 Para gerar todos os subconjuntos de um conjunto nito.
Entradas: Um conjunto S = x
1
, x
2
, ..., x
n

n, o n umero de elementos de S.
Sadas: Todos os subconjuntos de S.
A ideia por tras desse algoritmo e construir uma funcao caracterstica
para identicar os elementos de S, para cada subconjunto. Se S tiver n
elementos, os strings binarios com n dgitos servem ao proposito. Para
uma string binaria dada, cada dgito corresponde a um x em S. Se o dgito
for 1, entao incluir x no subconjunto. Se o dgito for 0, entao excluir x.
Metodo: m 0
Enquanto m < 2
n
:
expressar m como uma string binaria de comprimento n
(m = a
1
2
n1
+a
2
2
n2
+... +a
n
2
0
)
dena a funcao caracterstica
(c
i
a
i
, para i = 1, 2, ..., n)
escolher o subconjunto Y , correspondendo a m
(se c
i
= 1, entao incluir x
i
em Y )
registrar Y (imprimir ou armazenar num arquivo)
m m+ 1.
Exemplo 188 Achar todos os subconjuntos de S = a, b, c, usando
o algoritmo 10.
Solucao:
m c
1
c
2
c
3
Subconjuntos Y
0 0 0 0
1 0 0 1 c
2 0 1 0 b
3 0 1 1 b, c
4 1 0 0 a
5 1 0 1 a, c
6 1 1 0 a, b
7 1 1 1 a, b, c
Algoritmo 11 Para gerar todos os subconjuntos de um conjunto nito.
9.3. ALGORITMOS 219
Metodo: Se o conjunto S for vazio, entao e o unico subconjunto de S, registrar
Caso contrario, selecionar um elemento arbitrario x S.
Achar todos os subconjuntos de S x e
para cada subconjunto Y de S x, registrar x Y.
A ideia por tras desse algoritmo e usar uma abordagem recursiva. A as-
sertiva achar todos os subconjuntos de S x, envolve uma chamada
recursiva.
Os conjuntos S, S x,...formam uma sequencia estritamente decrescente,
onde cada conjunto e um subconjunto proprio do anterior. A sequencia deve
terminar com o conjunto vazio, , pois S e nito.
Portanto, a recursao termina.
Exemplo 189 Usar o algoritmo 11 para achar todos os subconjun-
tos de a, b, c.
Solucao: Denamos subconjunto como uma funcao do conjunto de
conjuntos tal que subconjuntoX signica sada de todos os subcon-
juntos de X.
S x S x Y sada
a, b, c a b, c subconjuntob, c (defer (1))
b, c b c subconjuntoc (defer (2)))
c c subconjunto()
c
retornar(2) , c b, b, c
retornar(1) , c, b, b, c a, a, c
a, b, a, b, c
Observe que os algoritmos 10 e 11 geram subconjuntos na mesma ordem.
A ideia por tras do proximo algoritmo e gerar os subconjuntos numa ordem
particular. A exigencia e que os subconjuntos sucessivos devem diferir por por,
exatamente, um elemento. O algoritmo usa, o que e conhecido por, codigo de
Gray.
Denicao 72 Um codigo de Gray de comprimento n e uma sequencia de 2
n
strings binarias, cada uma com comprimento n diferindo da sua vizinha, na
sequencia, por exatamente um dgito.
Exemplo 190 Um codigo Gray de comprimento 2 e a sequencia
11,01,00,10.
220 CAP

ITULO 9. CONTAR
Figura 9.6: Um grafo 4-vertice.
O codigo Gray no exemplo corresponde a um ciclo Hamiltoniano sobre um
grafo 4-vertice, mostrado na gura 9.6.
Uma algoritmo recursivo para construir codigo de Gray e dado abaixo.
Algoritmo 12 (Codigo de Gray) Para gerar todas as sequencias binarias de
comprimento k, em ordem, de modo que as sequencias sucessivas diram de
exatamente um dgito.
Metodo: Comecar com a sequencia de todos os zeros. Para passar da
sequencia
b
1
b
2
b
3
...b
k
para a proxima, examinamos as somas de dgitos
b
1
+b
2
+b
3
+... +b
k
,
b
2
+b
3
+... +b
k
,
b
3
+... +b
k
, ..., etc.
Se b
i
+b
i+1
+... +b
k
for o primeiro dessas somas a ser par, substituimos o
dgito b
i
por 0, se ele for 1 e 1 se ele for 0.
Se todas as somas forem mpar isto signica que atigimos a ultima se-
quencia.
Exemplo 191 Achar um codigo de Gray de comprimento 3.
O codigo de Gray gerado pelo algoritmo 12, com k = 3 e
000, 100, 110, 010, 011, 111, 101, 001
Um codigo de comprimento 3 corresponde a um circuito Hamilto-
niano de um grafo 8-vertice(isto e, um cubo).
9.3. ALGORITMOS 221
Algoritmo 13 Para gerar todos os subconjuntos de um conjunto nito, usan-
do um codigo de Gray.
Entradas: Um conjunto S = x
1
, ..., x
n

n, o n umero de elementos em S.
Sadas: Todos os subconjuntos de S.
Poscondicoes: Os subconjuntos gerados devem ser registrados numa ordem tal que os conjuntos
sucessivos diferem em, exatamente, um elemento.
Metodo: Construir um codigo de Gray de comprimento n.
Selecionar os suconjuntos de S, usando o codigo de Gray
como a funcao caracterstica.
Exemplo 192 Achar todos os subconjuntos de a, b, c, usando o al-
goritmo 13.
Solucao: Usando o codigo de Gray, gerado no exemplo 191, co-
mo funcao caracterstica, os subconjuntos sao obtidos na seguinte
ordem.
, a, a, b, b, b, c, a, b, c, a, c, c
9.3.1 Permutac oes
Sao conhecidos muitos algoritmos para gerar permutacoes. O algoritmo apre-
sentado aqui, produz todas a n-permutac oes de um conjunto de n objetos,
A = a
1
, a
2
, ..., a
n
.
Numa secao anterior uma permutacao dos elementos de um conjunto foi
descrito como um arranjo daqueles elementos nos quais a ordem e impor-
tante e nao e permitido repeticoes. Essa descricao nao e satisfatoria como uma
denicao, pois uma permutacao e um arranjo. Isto e, uma palavra foi ex-
plicada pela outra. A seguinte denicao de permutacao supera esse problema,
denindo uma permutacao como uma especie de funcao.
Exemplo 193 A func ao e um mepeamento de
A = a
1
, a
2
, a
3
, a
4
, a
5

sobre ele proprio, denida por


(a
1
) = a
4
, (a
2
) = a
1
, (a
3
) = a
5
, (a
4
) = a
2
, (a
5
) = a
3
.
222 CAP

ITULO 9. CONTAR
Pois a funcao e uma a uma de A sobre si proprio, se for uma
permutacao de A.
A permutacao pode ser denida pela notacao de matriz
_
a
1
a
2
a
3
a
4
a
5
a
4
a
1
a
5
a
2
a
3
_
na qual cada elemento na linha de cima e mapeado no elemento diretamente
abaixo. Se for conhecido a ordem original a
1
a
2
a
3
a
4
a
5
, entao a permutacao e
sucientemente identicada por (a
4
, a
1
, a
5
, a
2
, a
3
) ou, simplesmente, 41523.
Uma medida do conte udo para o qual cada elemento esta fora da ordem
relativa a ordem natural (12345) da sequencia e dada pela funcao d de des-
locamento.
O valor da funcao de deslocamento em a
i
, ou seja, d(a
i
), e o n umero de
elementos de A, `a esquerda de a
i
, na permutacao que estaria `a direita de a
i
,
na ordem natural. No exemplo, acima, d(a
2
) = 2, pois a
4
, a
5
estao `a esquerda
de a
2
na ordem natural. Analogamente, d(a
1
) = 1, d(a
3
) = 2, d(a
4
) = 0, d(a
5
) = 0.
A funcao de deslocamento d e denida, informalmente,
d : a
1
, a
2
, ..., a
n
0, 1, ..., (n 1)
d(a
i
) = d
i
=
_

_
0 se a
i
na permutacao for mapeado sobre si proprio, ou
um elemento para sua esquerda na ordem original
1 se a
i
for mapeado num elemento k colocado `a
direita na ordem original.
Exemplo 194 Achar a sequencia de deslocamentos (d
1
, d
2
, ..., d
5
) para
a permutac ao , denida no exemplo 193, acima.
Solucao:
a
1
a
2
a
3
a
4
a
5
a
4
a
1
a
5
a
2
a
3
i 1 2 3 4 5
d(i) 1 2 2 0 0
A sequencia de deslocamento e (1, 2, 2, 0, 0).
Denicao 73 (Deslocamento) A funcao de deslocamento para uma permu-
tacao e a funcao
d : a
1
, a
2
, ..., a
n
0, 1, 2, ..., n
9.3. ALGORITMOS 223
Seja
1
(a
i
) = a
j
, entao
d(a
i
) = d
i
=
_
0 se j i
j i se j > i
A sequencia d
1
, d
2
, ..., d
n
e chamada a sequencia de deslocamento para .
Proposicao 34 A funcao de deslocamento, d, satisfaz a desigualdade
0 d
i
n i
para i = 1, 2, 3, ..., n.
Prova: Por induc ao sobre (n i).
Etapa basica: Se n i = 0, entao, i = n,
e o ultimo elemento nao pode ser deslocado para a direito, portanto,
d(n) = 0,
e 0 d(n) 0 implica d(n) = 0. Portanto, a proposi cao e verdadeira
para n i = 0.
Etapa indutiva: Suponha que a proposicao e verdadeira para n i = k.
Entao, i = n k e 0 d(n k) k. Agora, consideremos i k = k + 1.
Isto da i = n k 1 e existe mais uma posicao disponvel na direita
de a
i
, para deslocar esse elemento. Portanto, a proposicao
tambem e verdadeira para n i = k + 1.
O problema inverso de achar uma sequencia de deslocamentos para uma
dada permutacao, e encontrar a permutacao correspondente a uma sequencia
de deslocamentos.
Algoritmo 14 Para gerar uma permutacao de uma sequencia de deslocamen-
tos.
Descricao informal: Dada uma sequencia de n objetos na ordem natural,
a
1
, a
2
, ..., a
n
n possveis posicoes vagas e uma sequencia de deslocamentos
d
1
, d
2
, ..., d
n
(0 d
i
n i)
colocar a
1
na posicao d
1
+ 1(contado da esquerda para a direita).
Se a
1
, a
2
, ..., a
i1
ja foi colocado, colocar a
i
na (d
i
+ 1)-esima posi cao va-
ga(contada a partir da esquerda).
224 CAP

ITULO 9. CONTAR
Exemplo 195 Achar a permutacao correspondente `a sequencia de
deslocamento 3,3,0,1,1,0.
1. Colocar a
1
(3+1)-esima posicao vaga.
-,-,-,a
1
,-,-
2. Colocar a
2
na (3+1)-esima posi cao vaga.
-,-,-,a
1
, a
2
,-
3. Colocar a
3
na (0+1)-esima posi cao vaga.
a
3
,-,-,a
1
, a
2
,-
4. Colocar a
4
na (1+1)-esima posi cao vaga.
a
3
,-,a
4
, a
1
, a
2
,-
5. Colocar a
5
na (1+1)-esima posi cao vaga.
a
3
, , a
4
, a
1
, a
2
, a
5
6. Colcar A
6
na (0+1)-esima posi cao vaga.
a
3
, a
6
, a
4
, a
1
, a
2
, a
5
Portanto, a permutacao e a
3
, a
6
, a
4
, a
1
, a
2
, a
5
Proposicao 35 Existe uma correspondencia uma a uma entre o conjunto de
todas as permutacoes sobre um conjunto A com n elementos e o conjunto
de todas as sequencias de deslocamentos com n termos.
Prova: O n umero de permuta coes sobre um conjunto A com n membros
e n!.
O n umero de sequencias de deslocamentos com n termos e
n (n 1) ... 2 1 = n!
da proposi cao anterior e a regra da multiplicacao para contar.
Exatamente, uma permutacao sobre o conjunto de n objetos pode ser
gerada de cada sequencia de deslocamentos com n termos. Veja o algoritmo
14.
O resultado segue.
Algoritmo 15 Para gerar uma permutacao a partir de uma sequencia de
deslocamentos.
Versao formal:
9.3. ALGORITMOS 225
Entradas: uma sequencia de deslocamentos (d
1
, d
2
, ..., d
n
).
uma permuta cao (a
1
, a
2
, ...a
n
).
Precondic oes: a sequencia de deslocamento e a permutacao tem n
membros e satisfazem as respectivas denc oes.
Sadas: uma permuta cao
_
a
1
a
2
... a
n
p
1
p
2
... p
n
_
Poscondicoes: a permuta cao (p
1
, ..., p
n
) casa com a sequencia de deslocamentos
de entrada.
As etapas no algoritmo sao descritas, primeiro, em palavras.
Metodo: Rotular as n posic oes na permutacao de 1 a n.
Para i = 1 ate n:
colocar a
i
na posicao rotulada d
i
+ 1
rerotular as posicoes seguindo a posicao d
i
+ 1
Agora, vamos detalhar as etapas no algoritmo.
Metodo : Para k = 1 a n
c(k) = k
para i = 1 a n
k d
i
+ 1
j c(k)
p
j
a
i
para m = k a n i
c(m) c(m+ 1)
Exemplo 196 Achar a permutacao de (a
1
, a
2
, ..., a
6
), correspondendo
a sequencia de deslocamentos (3,3,0,1,1,0).
Seja a permutacao
_
a
1
a
2
... a
n
p
1
p
2
... p
n
_
A seguinte tabela mostra valores de domnios sucessivos para c em
executando o algoritmo.
226 CAP

ITULO 9. CONTAR
k i
1 2 3 4 5 6 1
1 2 3 - 4 5 2
1 2 3 - - 4 3
- 1 2 - - 3 4
- 1 - - - 2 5
- 1 - - - - 6
Percorrendo as etapas do algoritmo obteremos a seguinte tabela
de valores para as variaveis.
i d
i
k c(k) j sada
1 3 4 4 4 p
4
= a
1
2 3 4 5 5 p
5
= a
2
3 0 1 1 1 p
1
= a
3
4 1 2 3 3 p
3
= a
4
5 1 2 6 6 p
6
= a
5
6 0 1 2 2 p
2
= a
6
A sada e a permutacao
_
a
1
a
2
a
3
a
4
a
5
a
6
a
3
a
6
a
4
a
1
a
2
a
5
_
Exemplo 197 Achar as permuta coes de (a
1
, a
2
, ..., a
6
) corresponden-
do `a sequencia de deslocamentos (0,2,4,0,1,0).
Solucao: A sequencia de deslocamentos e ilegal, pois d
3
= 4, con-
tradiz a proposicao 24, que estabelece que d
3
6 3.
Algoritmo 16 (Permutacoes) Para gerar todas as n-permutacoes de um con-
junto com n objetos.
Entradas: um conjunto a
1
, a
2
, ..., a
n
.
Sadas: todas as permutac oes de A.
Metodo: D (0, 0, ..., 0)
(o n-elemento, sequencia de deslocamento nula).
repita:
achar uma nova sequencia de deslocamento (algoritmo 17).
converter a sequencia na permutacao (algoritmo 17)
registrar a permuta cao
ate n! permutac oes terem sido registradas.
Algoritmo 17 Para encontrar uma nova sequencia de deslocamentos de uma
dada sequencias de deslocamentos.
9.4. EXERC

ICIOS 227
Entradas: uma sequencia de deslocamento D = (d
1
, d
2
, ..., d
n
).
Sadas: a proxima sequencia de deslocamentos na ordem do dicionario, D

.
Metodo: i n 1
enquanto d
i
= n 1 e i ,= 0:
d
i
0
i i 1
se i > 0, entao d
i
d
i
+ 1
Exemplo 198 Dada a permutacao (a
5
, a
2
, a
4
, a
3
, a
1
), gerar a proxima
permutacao usando os algoritmos 17 e 15.
Solucao: Permutacao = 524321. A sequencia de deslocamentos =
41210.
A proxima sequencia de deslocamentos = 42000. A nova permu-
tacao e 34251.
9.4 Exerccios
1. Quantos n umeros divisveis por 7 existem no conjunto dos inteiros con-
secutivos de 100 a 999?
2. Quantos membros tem a sequencia
a

n
2

, ..., a
n
, onde n 2?
Considere o caso n par e o caso n mpar, separadamente.
3. Qual e 27
o
n umero mpar apos 99?
4. Dado o conjunto
S = j Z[100 j 999
(a) Achar [S[.
(b) Quantos inteiros mpares existem em S?
(c) Quantos inteiros em S tem dgitos distintos?
(d) Quantos inteiros mpares em S tem dgitos distintos?
228 CAP

ITULO 9. CONTAR
5. Um sistema de PC tem disponvel duas especies de disco rgido, tres
tipos de telas VDU, dois teclados e tres tipos de impressoras. Quantos
sistemas distintos podem ser conseguidos?
6. O n umero 42 tem a fatorizacao prima 2 3 7. Portanto, 42 pode ser
escrito de quatro maneiras como o produto de dois fatores inteiros posi-
tivos.
(a) Em quantas maneiras 24 pode ser escrito como o produto de dois
fatores inteiros positivos?
(b) A fatorizacao em primos de um inteiro positivo n e p
1
p
2
... p
k
.
Dado que os fatores primos sao distintos, em quantas maneiras podemos
escrever n como o produto de dois fatores inteiros positivos?
7. Quantos inteiros de 1 a 1000 nao sao divisveis por 8 ou 12?
8. Quantos inteiros de 1 a 1000 nao sao divisveis por 6 ou 8?
9. Seja S um conjunto de n umeros, com quatro dgitos, formados do con-
junto de dgitos {0,2,3,5,6} permitindo-se repeticoes.
(a) Quantos n umeros estao em S?
(b) Quantos n umeros em S nao tem dgitos repetidos?
(c) Quantas daqueles na parte (b) sao pares?
(d) Quantos daqueles na parte (b) sao maior que 4000?
(e) Quantos daqueles na parte (b) sao divisveis por 5?
10. Cada caractere alfabetico e representado no codigo Morse por um se-
quencia de ate quatro pontos ou tracos. Por exemplo, b e representado
por -... e s e representado por ...
Quantos caracteres podem ser representados dessa maneira?
11. Um grafo completo e denido como um grafo simples, onde cada par de
vertices distintos e adjacente, conectado por uma aresta. O smbolo para
um grafo completo com n vertices e K
n
. Encontrar o n umero de arestas
em K
n
.
12. O grafo bipartido completo K
m,n
e um grafo simples G, no qual
V (G) = A B, A B = , [A[ = m, [B[ = n, e
9.4. EXERC

ICIOS 229
E(G) = a, b[a A, b B
Calcular o n umero de arestas em K
m,n
.
13. Quanto inteiros de 1 a 1000, inclusive, contem um 5 ou 6 na sua repre-
senta cao decimal?
14. Quantos inteiros de 1 a 1000, inclusive, nao sao divveis por nenhum dos
n umeros 5, 6 ou 8?
15. Um disco e dividido em 24 setores, cada numerado de 1 a 24, mas arran-
jados ao acaso. Mostre que existem quatro n umeros consecutivos com
soma maior que 50.
16. Quantas permutacoes podem ser feitas usando todas as letras de cada
palavra?
(a) WAGGA (b)MURRUMBURRAH (c) COONABARABRAN
17. O vencedor de uma competicao e decidido por um j uri de tres juzes.
Primeiro, os dez melhores entram e sao selecionados. Entao, um dos
juzes escolhe um vecedor dos dez melhores que entraram. Para o maior
premio ser dado, um competidor que entrar deve ser selecionado como
vencedor por, pelo menos, dois dos juzes. Calcular:
(a) O n umero de selec oes de vencedores possveis por tres juzes.
(b) O n umero de selec oes nas quais e dado o maior premio.
(c) A fracao de possbilidades nas quais o maior premio e dado.
18. Quantos inteiros de 1 a 10 000 tem uma soma de dgitos de 9?
19. Quantas strings binaria de 10-dgitos, distintas, tem seis 0s e quatro 1s?
20. Achar o coeciente de x
5
y
4
z
3
em (x 2y + 3z +w)
12
.
21. Quantas solucoes tem x+y+z = 15, onde x, y, z sao inteiros nao-negativos?
Achar o n umero de termos na expansao de (u +v +w)
15
.
22. Quantas strings binaria de 12 dgitos tem oito 0s e quatro 1s?
23. Quantos livros devem ser escolhidos dentre 21 livros de matematicas,
25 de ciencia da computacao, 21 de literatura, 15 de economia e 30 de
contabilidade, para assegurar que existem no mnimo 12 livros sobre o
mesmo assunto?
230 CAP

ITULO 9. CONTAR
24. De uma lista de 4 homens e 6 mulheres devem ser escolhidos tres gerentes.
Quantas selec oes diferentes podem ser feitas, se, no mnimo, uma pessoa
de cada sexo tem de ser escolhido?
25. Mostre que se 151 inteiros forem escolhidos de 1, 2, 3, ..., 300, entao a
escolha deve incluir dois inteiros a, b, onde a divide b ou b divide a.
26. Gerar todos os subconjuntos de a, b, c, d.
27. Achar as permutac oes geradas imediatamente apos (a
5
, a
4
, a
3
, a
1
, a
2
) pelo
algoritmo 15
Bibliograa
[1] Abramsky, S. Domain theory in logical form. In Domain Theory in
Computing Science, pages 4753. Computer Society Press of the IEEE,
1987.
[2] Benedito M. Acioly. The scott interval analysis: A new approach to
interval mathematics. Revista de Informatica Teorica e Aplicada (RI-
TA), 1996. To Appear.
[3] Benedito M. Acioly. The Scott Interval Analysis. In Marclia A. Campos;
Dalcdio M. Claudio, editor, Proceedings of the Second Workshop on
Computer Arithmetic, Interval and Symbolic Computation, pages 46.
Brazilian Computer Society (SBC), August 1996.
[4] Acioly B. & Bedregal, B. A quasi-metric topology compatible with
inclusion-monotonicity property on interval space. Reliable-Computing,
3(3), 1997. Ed.Kluwer.
[5] Acioly, Benedito. Notas em logica. Technical report, Instituto de In-
formatica, Universidade Federal do Rio Grande do Sul., Setembro 1990.
[6] Acioly, Benedito M. Computational foundations of Interval mathema-
tics. PhD thesis, Instituto de Informatica, Universidade Federal do Rio
Grande do Sul, Dezembro 1991. in Portuguese.
[7] Aczel, Peter H.G. Term declaration logic and generalized composita. In
Six Annual IEEE Symposium on Logic in Computer Science(LICS91),
pages 2230. IEEE Press, 1991.
[8] Alefeld, G. & Herzberger, J. An Introduction to Interval Computation.
Academic Press, New York, 1983.
[9] Arbib,M.A. & Manes E.G. Arrows, Structures and Functors. Academic
Press, 1975.
231
232 BIBLIOGRAFIA
[10] Asperti, Andrea & Longo Giuseppe. Categories, Types and Structures.
Massachusetts Institute of Technology, 1991.
[11] Barendregt, H. The lambda calculus. its syntax and semantics. In
Studies in Logic and Foundation of Mathematics, volume 103. North-
Holland Publishing Company, 1984.
[12] Barr, Michael & Wells, Charles. Category Theory for Computing Scien-
ce. C.A.R Hoare, Series Editor. Pretince Hall International (UK), rst
edition, 1990.
[13] Bedergal, B.R. & Acioly, B.M. Sistemas de informacao cont

iInuos. Te-
chnical Report RT-001/95, UFPe-CCEN, Depto. de Informatica, Recife,
95.
[14] Michael Beenson. Foundation of constructive Mathematics. springer-
Verlag, 1985.
[15] Beenson, M.J.ll. Formalizing constructive mathematics. why and how?
In F.Richman, editor, Constructive Mathematics. Proceedings,, number
873 in Lecture Notes in Mathematics, pages 146190, Las Cruces, New
Mexico, 1981. Springer-Verlag.
[16] Bell, J.L. Toposes and Local Set Theories. An Introduction. Number 14
in Oxford Logic Guides. Clarendon Press - Oxford, 1988.
[17] Berti, S. The Solution of an Interval Equation. 1969.
[18] Bird, Richard. Programs and Machines. An Introduction to the Theory
of Computation. John Wiley & Sons, 1976.
[19] Birko, Garret. On the structure of abstract algebras. Proceedings
Cambridge Philosophical Society, 31:433454, 1935.
[20] Erret Bishop. Foundations of Constructive Analysis. Mc-Graw Hill,
1967.
[21] C.Thomas; Hahn S.W. Bullof, Jack J.; Holyoke, editor. Foundations of
Mathematics (Symposium Papers Commemorating the Sixtiex Birth-
day of Kurt Godel, 1969.
[22] Bunge, Mario. Tratado de losoa basica. In Semantica I, volume vol
1. EDUSP, 1976.
BIBLIOGRAFIA 233
[23] Bunge, Mario. Tratado de losoa basica. In Semantica II. Interpre-
tacao e Verdade, volume vol 2. EDUSP, Sao Paulo, 1976.
[24] Burris, Stanley & Sankappanavar, H.P. A Course in Universal Algebra.
Springer-Verlag, 1981.
[25] Georg Cantor. Contributions to the foundation of the theory of trans-
nite numbers. Dover Publications.
[26] Cardelli, Luca & Wagner, Peter. On understanding types, data abstrac-
tion and polimorphism. Computing Surveys, 17(04), December 1985.
[27] Cohn, P.M. Universal Algebra. Harper & Row and John Weatherhill
Inc., 1965.
[28] Costa, M.Amoroso. In Texto 4. As Ideias Fundamentais da Matematica
e Outros Ensaios, Biblioteca do Pensamento Brasileiro. EDUSP, 1981.
[29] daCosta, Newton C.A. Introduc ao aos Fundamentos da Matematica.
HUCITEC, Sao Paulo, 3ed., edition.
[30] B.A. Davey and H.A. Priestley. An introduction to lattices and order.
Cambridge University Press, 1992.
[31] Davis, Ruth. Truth, Deduction, and Computation. Logic and Seman-
tics for Computing Science. Computer Science Press, 1989.
[32] deQueiroz, Ruy J.G.B. A proof-theoretic account of programming and
the role of reduction rules. Dialectica, 42(04), 1988.
[33] deQueiroz, Ruy J.G.B. Proof Theory and Computer Programming.
The Logical Foundations of Computing. PhD thesis, Department of
Computing, Imperial College, University of London, 1991.
[34] deQueiroz, Ruy J.G.B. & Gabbay, M. Dov. An introduction to label-
led natural deduction. Technical report, Departament of Computing,
Imperial College, University of London, September 1982.
[35] deQueiroz, Ruy J.G.B. & Maimbaum, Thomas S.E. Proof theory and
computer progamming. Zeitschrift F ur Mathematishe Logik und Grun-
dlagen der Mathematik, 36:389414, 1990.
[36] Diller A. Z. An Introduction to Formal Methods. John Wiley & Sons,
1994.
234 BIBLIOGRAFIA
[37] Domingues, H.H. & Iezzi, G.

Algebra Moderna. 2a ed. edition, 1982.
[38] Dummet, Michael. What is a theory of meaning? In Evans & John
McDowell, editor, Essays in Semantics. Claredon Press, 1976.
[39] H. Enderton. A mathematical introduction to logic. Academic Press
Inc, 1972.
[40] Bell. E.T. Men of mathematics.
[41] Ferrari, A. T. Metodologia da Pesquisa Cientca. McGraw-Hill, 1982.
[42] F.B. Feys, R.; Fitch. Dictionary of Mathematical Logic. Studies in
Logic and The Foundations of Mathematics. North-Holland, 1969.
[43] M.C. Fitting. Intuitionistic Logic Model Theory and Forcing. Studies
In Logic and the Foundations of Mathematics. North-Hollad, 1969.
[44] M. P. Fourman and D. S. Scott. Sheaves and logic. In M. P. Fourman,
C. J. Mulvey, and D. S. Scott, editors, Applications of Sheaf Theory
to Algebra, Analysis, and Topology, number 753 in Lecture Notes in
Mathematics, pages 302401. Springer-Verlag, 1979.
[45] F.W.Lawvere, editor. Toposes, Algebraic Geometry and Logic. Number
274 in Lecture Notes in Mathematics. Springer-Verlag, 1972.
[46] Gabbay, Dov M. Labelled Deductive Systems. Part 1. Oxford University
Press, 1996.
[47] Gabbay, M.Dov & de Queiroz, Ruy J.G.B. Extending the curry-howard
interpretation to linear, relevant and other resourcer logic. The Journal
of Symbolic Logic, 57(4), December 1992.
[48] Gallier, Jean. Contructive logics. Technical report, digital, Paris Re-
search Laboratory, 1991.
[49] Gallier, Jean H. Logic for Computer Science. Foundations of Automa-
tic Theorem Proving. John Wiley & Sons inc., 1987.
[50] Gentzen, G. The collected papers of gerard gentzen. In Szabo, M.E., edi-
tor, Studies In Logic And Foundations of Mathematics. North-Holland
Publishing Company, 1969.
[51] Gierz, G.; Hofmann, K.H.;Keimel, K.; Lawson, J.D.; Mislove, M.; Scott,
D.S. A Compendium of Continuous Lattices. Springer-Verlag, 1980.
BIBLIOGRAFIA 235
[52] Girard, Jean-Yves. Proof Theory and Logical Complexity, volume I.
Bibliopolis, 1987.
[53] Girard, Jean-Yves; Lafont, Yves & Taylor, Paul. Proofs and Types,
volume 7 of Tracts in Theoretical Computer Science. Cambridge Uni-
versity Press, 1989.
[54] Andrew H. Gleason. Fudamentals of Abstract Analysis.
[55] Goguen, Joseph A. Theorem Proving and Algebra. To be published,
1997. Draft of May 16, 1997.
[56] Goguen,J, et.al. Initial algebra semantics and continuous algebras. Jour-
nal of ACM, 24(1):32101, January 1977.
[57] Goldblatt, R. Topoi. The Categorial Analysis of Logic, volume 98 of
Studies in Logic and The Foundations of Mathematics. north-holland,
1984.
[58] R.L. Goodstein. Recursive Number Theory. Studies in Logic and the
Foundation of Mathematics. North-Holland, 1964.
[59] Michael J.C. Gordon. Programming Language Theory and Its Imple-
mentation. C.A.R. Hoare. Pretince-Hall, 1988.
[60] Guelli, C.A; et.al. Algebra IV. Editora Moderna ltda.
[61] Halmos, Paul R. Naive Set Theory. D.Van Nostrand Company inc.,
1960.
[62] Heijenoort, Jean Van. From frege to godel. a source book in mathema-
tical logic 1879-1931. Series Source Books in History Of The Science,
pages xii+665pp. Harvard University Press.
[63] Heijnoort, Jean Van. Logic as calculus and logic as language. Synthese,
53, 1967.
[64] Hennessy, Matthew. Algebraic Theory of Process. The MIT Press,
1988.
[65] Hindley, J. Roger & Seldin, Jonathan P. Introduction to Combinators
and -calculus.
[66] Howard, W.A. The formulae-as-types notion of construction. In J.P.
Seldin & J.R. Hindley, editor, Essays on Combinatory Logic, Lambda
Calculus and Formalism, pages xxv+606p. Academic Press, 1980.
236 BIBLIOGRAFIA
[67] Huet, Gerard, editor. Logical Foundations of Functional Programming.
Addison-Wesley, 1990.
[68] Peter T. Johnstone. Stone Spaces. Cambridge University Press, 1982.
[69] P.T. Johnstone. Stone Spaces. Cambridge University, 1982.
[70] Johnstone, P.T. Stone Spaces. Cambridge University Press, 1982.
[71] Robert H. Kasriel. Undergraduate Topology.
[72] Kleene, Stephen Cole. Mathematical Logic. John Wiley & Sons, Inc.,
1967.
[73] Kneale, William & Kneale, Martha. O Desenvolvimento da Logica.
Fundacao Calouste Gulbenkian, 1991.
[74] G. Kreisel. Elements of mathematical logic (model theory). In Studies in
Logic and The Foundation of Mathematics. North-Holland Publishing
Company, 1971.
[75] Lambeck,J.& Scott,P.J. Introduction to Higher Order Categorical Lo-
gic. Cambridge University Press, 1986.
[76] P.D. Lax. Calculus with application and computing.
[77] Leisenring, A.C. Mathematical Logic and Hilberts -Symbol. MacDo-
nald Technical and Scientic, 1969.
[78] Lipschutz, Seymour. Teoria dos Conjuntos. AO Livro Tecnico S.A.,
1968.
[79] Manes, Ernest G. & Arbib, Michael A. Algebraic Approaches To Pro-
gram Semantics. Springer-Verlag, 1986.
[80] Manzano, Maria. Teoria de Modelos. Alianza Universidad Textos, 1989.
[81] Martin-Lof, Per . Notes on Constructive Mathematics. Almqvist &
Wiksell, 1968.
[82] Martin-Lof, Per. Constructive mathematics and computer program-
ming. In J.Tos, H.Pfeier & K.P.Pdewski L.J. Cohen, editor, Logic,
Methodology and Philosophy of Science, number VI. North-Holland,
1982.
[83] Martin-Lof, Per. Intuitionistic Type Theory. Bibliopolis, 1984.
BIBLIOGRAFIA 237
[84] Martin-Lof, Per. Truth of a proposition, evidence of a judgement, vali-
dity of a proof. Synthese, (73):407420, 1987.
[85] Moore, Ramon E. Interval Analysis. Pretince Hall, New Jersey, 1966.
[86] Moore, Ramon E. Methods and Applications of Interval Analysis.
SIAM, 1979.
[87] Mosses, Peter D. Handbook of Theoretical Computer Science, chap-
ter 11, pages 577674. 1990.
[88] Nordstrom, Bengt ; Peterson, Kent & Smith, Jan M. Programming in
Martin-Lofs Type Theory. An Introduction. Clarendon Press. Oxford,
1990.
[89] Paulson, L. Tracts in theoretical computer science. In Logic and Com-
putation. Interactive Proof with Cambridge LCF, volume 2. Cambridge
University Press, 1987.
[90] Prawitz, Dag. Ideas and results in proof theory. In Fenstad, J.E., editor,
Proceedings of The Second Scandinavian Logic Symposium, pages 235
307, Amsterdam, 1971. North-Holland.
[91] Prawitz, Dag. Towards a foundation of general proof theory. In Proce-
edings ,of The Fourth International Congress For Logic, Methodology
And Philosophy of Science, pages 225250. North-Holland Publishing
Company, 1971.
[92] Prawitz, Dag. On the idea of a general proof theory. Synthese, (27):63
77, 1974.
[93] Prior, A.N. The runabout inference-ticket. Analysis, (21):3839, 1960.
[94] Interval96, 1996.
[95] Revesz. Lambda-Calculus, Combinators and Functional Programing.
Cambridge Tracts in Theoretical Computer Science. Cambridge Univer-
sity Press, 1988.
[96] Reynolds, John C. Polymorphism is not set theoretic. Semantics of
Data Types, page 184, June. International Symposium, France.
[97] Reynolds, John C. Types, abstraction and parametric polimorphism.
Information Processing, 1983.
238 BIBLIOGRAFIA
[98] Ross, Keneth A. & Wright, Charles R.B. Discrete Mathematics. Pre-
tince Hall, 1988.
[99] Walter Rudin. Principles of Mathematical Analysis. McGraw-Hill,
1953.
[100] Santiago, Regivan. Toward a constructive logic to real analysis. Masters
thesis, Universidade Federal de Pernambuco, March 1995. In Portugue-
se.
[101] Santiago, Regivan & Acioly Benedito. Intervals as real numbers speci-
cation. In Interval96, October 1996.
[102] Santiago, Regivan & Acioly Benedito. A numerical approximation logic.
In Workshop in Arithmetic, Interval and Symbolic Computation, July
1996.
[103] Santiago, Regivan & Acioly, Benedito. Toward a logic for numerical
approximations. Revista de Informatica Teorica e Aplicada, 1996. To
appear.
[104] Santiago, Regivan & deQueiroz, Ruy J.G. Toward a proof theory for
proofs by induction. In 1st. Workshop LaLLIC, pages 149164, July
1994.
[105] Santiago, Regivan & deQueiroz, Ruy J.G. Notas em logica e topoi.
Manuscript, July 1996.
[106] Dana S. Scott. Domains for denotational semantics. In M. Nielsen and
E. M. Schmidt, editors, Automata, Languages and Programming, volu-
me 140 of Lecture Notes in Computer Science, pages 577613, Berlin,
1982. Springer-Verlag.
[107] Scott, Danna. Continuous lattices. In F.W.Lawvere, editor, Toposes,
Algebraic Geometry and Logic, number 274 in Lecture Notes in Mathe-
matics, pages 97136. Springer-Verlag, 1972.
[108] M.B. Smith. Topology. Handbook of Logic in Computer Science, 1:641
751, 1992.
[109] Smorynski, C.A. Applications of kripke models. In A.S. Troelstra, edi-
tor, Mathematical Investigation of Intuitionistic Arithmetic and Ana-
lysis, number 344 in Lecture Notes in Mathematics, chapter V, pages
324391. springer-Verlag, 1973.
BIBLIOGRAFIA 239
[110] Spivey, J.M. Understanding Z.A Specication Language and its Formal
Semantics. Cambridge University Press, 1988.
[111] Spivey, J.M. The Z Notation. A Reference Manual. C.A.R. Hoare
Series. Pretince Hall, 1992.
[112] Sundholm, Goran. Proof theory and meaning. In Gabbay, Dov &
Guenthner, F., editor, Handbook of Philosophical Logic, pages 471506.
D.Reidel Publishing company, 1986.
[113] Thompson, S. An introduction to type theory and constructive mathe-
matics. November 1987.
[114] A.S. Troelstra. Mathematical Investigation of Intuitionistic Arithmetic
and Analysis. Lecture Notes In Mathematics. Springer-Verlag, 1973.
[115] Troelstra, A.S. Principles of Intuitionism. Lecture Notes In Mathema-
tics. Springer-Verlag, 1969.
[116] Troelstra, A.S. & Van Dalen, Dirk. Constructivism in mathematics.
In Studies in Logic and the Foundations of Mathematics, volume II.
North-Holland, 1988.
[117] Dirk Van Dalen. Intuitionisc logic. Handbook of Philosophical Logic, 3,
1986.
[118] Van Dalen, Dirk. Intuitionistic logic. In Gabbay, Dov & Guenthner
F., editor, Handbook of Philosophical Logic, volume III, chapter III.4,
pages 225339. D. Reidel Publishing Company, 1986.
[119] Vickers, S. Topology via logic. Number 5 in Cambridge Tracts in Theo-
retical Computer Science. Cambridge University Press, 1989.
[120] David A. Watt. Programming Concepts and Paradigms. C.A.R. Hoare.
Pretince-Hall, 1990.
[121] Wechler, Wolfgang. Universal Algebra For Computer Scientists.
Springer-Verlag, 1992.
[122] Woodcock,J. & Davies, J. Using Z.Specication, Renement, and Proof.
Pretince Hall, 1996.
[123] Martin M. Zuckerman. Sets and Transnite Numbers. Collier Macmil-
lian, 1974.

Vous aimerez peut-être aussi