Вы находитесь на странице: 1из 66

Universidade Federal Rural de Pernambuco

Reitor: Prof. Valmar Corrêa de Andrade


Vice-Reitor: Prof. Reginaldo Barros
Pró-Reitor de Administração: Prof. Francisco Fernando Ramos Carvalho
Pró-Reitor de Extensão: Prof. Paulo Donizeti Siepierski
Pró-Reitor de Pesquisa e Pós-Graduação: Prof. Fernando José Freire
Pró-Reitor de Planejamento: Prof. Rinaldo Luiz Caraciolo Ferreira
Pró-Reitora de Ensino de Graduação: Profª. Maria José de Sena
Coordenação de Ensino a Distância: Profª Marizete Silva Santos

Produção Gráfica e Editorial


Capa e Editoração: Allyson Vila Nova, Rafael Lira e Italo Amorim
Revisão Ortográfica: Marcelo Melo
Ilustrações: Allyson Vila Nova e Diego Almeida
Coordenação de Produção: Marizete Silva Santos
Sumário

Plano da Disciplina................................................................................6

Ementa............................................................................................6

Objetivo Geral.................................................................................6

Objetivos Específicos......................................................................6

Conteúdo Programático..................................................................6

Referências.....................................................................................7

Apresentação.........................................................................................8

Capítulo 1 - Função: uma ferramenta importante.............................10

1.1 O que é função?.......................................................................... 11

1.2 Domínio e Contradomínio............................................................ 11

1.3 Função Injetora............................................................................13

1.4 Função sobrejetora......................................................................13

1.5 Função bijetora............................................................................14

1.6 Função inversa............................................................................15

1.7 Função composta........................................................................17

1.8 Seqüência....................................................................................20

Capítulo 2 - Recursão: um método de definição..............................27

2.1 Recursão.....................................................................................27
Capítulo 03 - Teoremas e Técnicas de Provas..................................45

3.1 Estratégias de Provas..................................................................47

3.1.1 Prova Direta.........................................................................47

3.1.2 Prova Indireta.......................................................................48

3.1.3 Prova por contradição (Redução ao absurdo).....................49

Capítulo 04 - Princípio de Indução Finita..........................................53


Plano da Disciplina

Ementa

Conjuntos. Introdução à Lógica Matemática. Portas Lógicas. Somatório. Princípios


de Contagem. Matrizes. Relações. Funções. Recursão. Técnicas de provas. Indução
Matemática.

Objetivo Geral

O objetivo geral é abordar conteúdos selecionados da Matemática Discreta que


realizam interface com o curso de Sistema de Informação, visando dar a base para
a compreensão de conceitos de estruturas de dados, bem como, para dar suporte na
construção de algoritmos em seus diferentes níveis de complexidade.

Objetivos Específicos

• Aprender a encontrar modelos matemáticos que representem certos problemas


concretos (noções de modelagem matemática), em especial quando estes se
referem a situações práticas

• Familiarizar-se com a escrita matemática formal e a linguagem computacional

• Representar fenômenos na forma algébrica e na forma gráfica

• Conhecer técnicas de resolução de problemas

• Desenvolver a capacidade de raciocínio abstrato (lógico-matemático).

Conteúdo Programático

Módulo 1 – Fascículo 1

Carga horária do Módulo 1: 20 h

• Conjuntos.

• Introdução à Lógica Matemática.

• Portas Lógicas.
Módulo 2 – Fascículo 2

Carga horária do Módulo 2: 20 h

Somatório. Princípios de Contagem. Matrizes. Relações

Módulo 3 – Fascículo 3

Carga horária do Módulo 3:

• Funções.

• Recursão. Técnicas de provas.

• Indução Matemática.

Referências

GERSTING, Judith L. Fundamentos Matemáticos para a Ciência da Computação.


Tradução Valéria de Magalhães Lorio. Rio de Janeiro: LTC, 2004.

Scheinerman, Edward R. Matemática Discreta: uma introdução. Tradução de


Alfredo Alves de Farias. São Paulo: Pioneira Thomson Learning, 2003.

Livros de referência:

ABE, Jair Minoro; PAPAVERO, Nelson. Teoria intuitiva dos conjuntos. São Paulo
McGraw Hill:, 1997

ALENCAR Filho, Edgard de. Iniciação à Lógica Matemática. São Paulo: Nobel,
1995.

ROSS, Kenneth A; WRIGHT, Charles R. B. Discrete Mathematics. Prentice Hall,


1999.

TRUSS, J. K. Discrete mathematics for computer scientist. Addison Wesley.


1999.

LIPSCHUTZ, Seimour; LIPSON, Marc Lars. Teoria e Problemas de Matemática


Discreta. Porto Alegre: Bookman, 2004
Apresentação

Caro (a) cursista,

Seja bem-vindo (a) ao terceiro módulo de Matemática Discreta!

Ao finalizar a disciplina, abordaremos, neste terceiro fascículo, alguns temas


relevantes em aplicações nas áreas de informática, como função, recursão, teoremas e
técnicas de provas e o princípio de indução matemática.

No primeiro capítulo, você estudará as funções. Estudaremos as funções injetoras,


sobrejetoras, bijetoras e a função inversa. Apresentaremos exemplos de funções
utilizadas na informática tais como seqüências numéricas, a função mod e a função
hash.

No segundo capítulo, você descobrirá o que é uma definição recursiva ou indutiva.


Serão apresentados exemplos de seqüências e funções definidas recursivamente,
objetivando introduzir o conceito de um algoritmo recursivo.

No terceiro capítulo, você terá oportunidade de conhecer diversas técnicas de provas


de proposições matemáticas, muito úteis na resolução de problemas da disciplina.

Por fim, no quarto capítulo será abordado o princípio de indução matemática que é
usado quando se quer provar afirmações sobre propriedades dos números naturais.

Esperamos que você tenha bom proveito neste terceiro fascículo, estudando com
afinco os assuntos e realizando todos os exercícios propostos.

Bons estudos!
Matemática Discreta

Capítulo 1 - Função: uma


ferramenta importante

Disponível em http://www.ipea.gov.br

A figura acima representa o gráfico de uma função que relaciona


o percentual da renda total do Brasil auferido em 2004 pelos x% dos
brasileiros de menor renda. Constata-se que a renda total dos 60%
de menor renda representou apenas 20% da renda total do país e
que 60% da renda total correspondem a 20% dos brasileiros de maior
renda. Esta curva é chamada Curva de Lorenz e faz parte da prova
do ENADE que examinou os estudantes dos cursos das áreas de
computação e informática no ano de 2008.

O conceito de funções é largamente empregado em todos os


ramos de atividade, por isso é comum os testes de avaliação conter
questões versando sobre o assunto.

No caso da computação e informática, a sua importância torna-


se clara quando queremos associar a cada elemento de um conjunto
um elemento particular de outro conjunto. Desta forma, podemos
definir seqüências e somas, estabelecer relações de causa e efeito,
processar informações dos mais diferentes tipos, além de estimar o
tempo necessário para que um computador realize uma determinada
tarefa num determinado algoritmo.

10
Matemática Discreta

1.1 O que é função?

Sejam A e B dois conjuntos. Uma função de A em B é a associação


de exatamente um elemento de B a cada elemento de A. As seguintes
notações são usadas:

f: A → B, se f é uma função de A em B.

f(a) = b, se b é o único elemento de B associado pela função f ao


elemento a de A.

1.2 Domínio e Contradomínio

Se f é uma função de A em B, diz-se que A é o domínio de f e B é


o contradomínio de f. Se f(a) = b, diz-se que b é a imagem de a por
f. Chama-se também de imagem de f o conjunto de todas as imagens
dos elementos de A, denotado por Im(f). Se f é uma função de A em
B, diz-se que f mapeia A em B.

A figura acima apresenta uma função cujo domínio é A = {1, 4, 7}


e contradomínio B ={1, 4, 6, 7, 8, 9, 12} e conjunto imagem Im(f) = {6,
9, 12}.

Apresentaremos a seguir exemplos de funções, a maioria


empregada em construções nas áreas de computação.

Exemplo 1. Consideremos que f seja uma função que associa um


número a cada um dos cursos de uma faculdade, de modo que esse
número represente a demanda (relação candidato/vaga) para cada
um dos seus cursos no Vestibular de 2009. Se domínio da função
f é o conjunto C = {Administração, Direito, Sistema de Informação,
Fonoaudiologia, Fisioterapia, Psicologia, Relações Internacionais,
Turismo}. O contradomínio é o conjunto dos números reais. Podemos
escrever, por exemplo, f(Direito) = 7,8; f(Administração) = 2,6;
f(Fisioterapia) = 7,4 ; f(Psicologia) = 5,4 e f(Sistemas de Informação)

11
Matemática Discreta

= 2,0, f(Relações Internacionais) = 1,4, f(Fonoaudiologia) = 1,7,


f(Turismo) 2,4.

Exemplo 2. Seja S o conjunto de todas as pessoas do Recife


cadastradas na Receita Federal e T o conjunto de todos os CPF. A
função f: S → T associa cada pessoa x ao seu CPF y.

Exemplo 3. Se f é uma função de Z para Z que associa a cada


inteiro o seu quadrado. Neste caso, f(x) = x2, onde o domínio é o
conjunto dos números inteiros, assim como o contradomínio é conjunto
dos números inteiros. A imagem de f é constituída de todos os inteiros
não negativos.

Exemplo 4. Em linguagens de programação, domínio e o


contradomínio das funções são sempre especificados. Tomemos por
exemplo a declaração de uma função em Pascal seguinte:

function QUAD (x: real): real

Ela especifica que o domínio da função QUAD é o conjunto dos


números reais e o contradomínio é o conjunto dos números reais.

Exemplo 5. A definição de função inclui função de mais de uma


variável. Podemos ter uma função f: A1xA2xA3 → B, que associa a
cada terno do produto cartesiano A1xA2xA3 um elemento de B. Por
exemplo, f : Z x N x {1, 2} → Z, dada por f(x, y, z) = xy +z . Podemos
escrever: f(-4, 3, 1) = (-4)3 + 1 = -64 + 1 = 63.

Exemplo 6. A função chão f(x) = x associa a cada número real x


o maior inteiro menor ou igual a x. A função teto g(x) = x associa
a cada real x o menor inteiro maior ou igual a x. Ambas são funções
de R em Z. Como exemplo, temos: f(2,35) = 2,35 = 2, f(0,9) = 0,
g(4,78) = 4,78 = 5 e g(-1,3) = -1.

Exemplo 7. Considere x um número real. O valor inteiro de x,


denotado por INT(x), converte x em um inteiro deletando a parte
fracionária de x. É uma função de R em Z. Exemplos: INT(7,85) = 7
INT(-4,9) = -4.

Exemplo 8. O valor absoluto de um número real x, denotado por


ABS(x) é definido como o maior dos valores entre x e –x. É uma
função de R em R+. Pois, ABS(-3) = 3, ABS(4,7) = 4,7 e ABS(0) = 0.

Exemplo 9. Dado um inteiro positivo m, a função f : N → N definida


por f(x) = resto da divisão euclidiana de x por m, m > 0, será denotada
por f(x) = xmod m. É também chamada função mod m.

12
Matemática Discreta

Por exemplo, para m = 5, temos que:

f(7) = 7mod 5 = 2, f(2) = 2mod 5 = 2, f(13) = 13mod 5 = 3,


f(8) = 3, f(10) = 10mod 5 = 0, f(5) = 5mod 5 = 0.

1.3 Função Injetora

Uma função f é dita injetora (ou injetiva) se, e somente se, x ≠ y


então f(x) ≠ f(y), para quaisquer x e y do domínio de f.

Figura 1 Figura 2

O gráfico mostrado na figura acima à esquerda, ilustra uma função


definida no conjunto A em B. Como elementos diferentes do domínio
a função tem imagens diferentes, então f é injetora. A figura acima à
direita ilustra uma função não injetora, pois existem dois elementos
diferentes com a mesma imagem.

Exemplo 10. A função f: N em N tal que f(n) = 2n é uma função


n n
injetora, pois se n1 ≠ n2 então 2 1 ≠ 2 2 . Mas a função f(x) = x2, definida
em Z, não é injetora, pois se tomarmos x = -2 e x = 2, obteremos f(2)
= f(-2) = 4.

Exemplo 11. A função f: N em N, tal que f(n) = nmod 3 é uma função


que não é injetora, pois, existem diferentes valores de N com a mesma
imagem. De fato, f(0) = 0, f(3) = 0, f(6) = 0, f(1) = 1, f(4) = 1, f(9) = 1,
f(2) = 2, f(5) = 2, f(11) = 2.

1.4 Função sobrejetora

Uma função f de A em B é dita sobrejetora se e somente se para


cada elemento b∈B existe um elemento a∈A tal que f(a) = b.

13
Matemática Discreta

O gráfico da figura acima à esquerda ilustra uma função de A em B.


Como para cada um dos três elementos do contradomínio B faz parte
do conjunto imagem de f, a função é sobrejetora. O gráfico acima
à direita ilustra uma função que não é sobrejetora, pois existem
elementos no conjunto B que não são imagem de nenhum elemento
de A.

Observe que a figura à esquerda é o gráfico de uma função


sobrejetora, mas não injetora!

1.5 Função bijetora

Uma função é dita bijetora se ela é injetora e sobrejetora.

O gráfico acima refere-se a uma função f de X = {a, b, c, d} em


Y = {A, B , C, D}, com f(a) = A, f( b) = B, f(c) = C e f(d) = D. Como
cada valor do domínio a função tem um valor diferente de imagem e
como cada um dos elementos do contradomínio faz parte do conjunto
imagem da função, ele é ao mesmo tempo injetora e sobrejetora, ou
seja, bijetora.

Outro exemplo de função bijetora pode ser construído considerando


como domínio um grupo de pessoas e como contradomínio o conjunto

14
Matemática Discreta

das impressões digitais dessas pessoas. É impossível que duas


pessoas compartilhem exatamente as mesmas impressões digitais.
Além disso, todas as impressões digitais pertencem a não mais que
uma pessoa.

1.6 Função inversa

Seja f uma função bijetora de A em B. A função inversa de f é


a função que associa a um elemento b∈B um único elemento a∈A
tal que f(a) = b. Esta função é representada por f-1. Nesse caso
escrevemos f-1(b) = a

A figura abaixo ilustra a função inversa da função f de X = {a, b, c,


d} em Y = {A, B, C, D}, com f(a) = A, f(b) = B, f(c) = C e f(d) = D.

Assim, temos f-1(A) = a, f-1(B) = b, f-1(C) = c e f-1(D) = d.

Exemplo 12. A função mod tem muitas aplicações em Matemática


Discreta e Ciência da Computação. Uma das mais importantes
aplicações envolve a criptologia, que trata do estudo das mensagens
secretas. Uma das formas de escrever mensagens secretas é associar
uma letra do nosso alfabeto a outra letra. Por exemplo, cada letra do
nosso alfabeto (que contém 26 letras) está associada a sua posição
no alfabeto. Por exemplo, a letra A ocupa a posição 0, a letra B a
posição 1 e a letra E, a posição 4, de modo que Z ocupa a posição
25.

15
Matemática Discreta

a b c d e f g h i j k l m
0 1 2 3 4 5 6 7 8 9 10 11 12

n o p q r s t u v w x y z
13 14 15 16 17 18 19 20 21 22 23 24 25

Assim, podemos construir uma mensagem secreta por meio da


troca de uma letra que ocupa a posição p pela letra que ocupa a 3ª
posição após a letra p. Assim:

A função definida por f(p) = (p + 3)mod 26 tem a ação de cifrar a


mensagem por meio da troca da letra de posição p pela letra que
ocupa a posição representada pelo número (p + 3)mod 26.

Se quisermos enviar a seguinte mensagem “O SPORT ESTÁ EM


ALTA”, faríamos a seguinte mensagem codificada:

17 21 18 17 20 22 7 21 22 3 7 15 3 14 22 3
R V S R U X H V X D H P D O W D

Ao receber a mensagem, para decodificar, o receptor usaria a


função inversa de f, dada por

f-1(p) = (p-3)mod 26. De modo que f-1(17) = (17 - 3)mod 26 = 14mod 26 = 14

f-1(21) = (21-3)mod 26 = 18 e, assim por diante, de modo que a


mensagem decifrada seria:

14 18 15 14 17 19 4 18 19 0 4 12 0 11 19 0
O S P O R T E S T Á E M A L T A

16
Matemática Discreta

Atenção

Uma função injetora, mas não sobrejetora, não é inversível,


pois não temos como associar cada elemento do contradomínio
com o elemento correspondente no domínio. Isto ocorre porque
para alguns pontos do contradomínio, esta associação não
existe, conforme pode ser observado na figura 4.

Analogamente, uma função sobrejetora, mas não


injetora, não é inversível, pois pelo menos para um ponto do
contradomínio, teremos dois pontos correspondentes, conforme
pode ser observado na figura 3.

1.7 Função composta

Considere a função g de A em B e a função f de B em C, a função


composta de f e g é a composição das funções f e g, escrita f o g,
definida como:

(f o g) (x) = f (g(x))

A figura abaixo ilustra o conceito de composição de funções f e g.

Exemplo 13. Sejam f e g as funções do conjunto dos inteiros no


conjunto dos inteiros, definidas como: f(x) = 5x + 2 e g(x) = -2x + 4.
Qual a composição f o g? E g o f?

(f o g) (x) = f (-2x + 4) = 5(-2x + 4) + 2 = -10x + 20 + 2 = -10x + 22

17
Matemática Discreta

(g o f) (x) = g(5x + 2) = -2(5x + 2) + 4 = -10x – 4 + 4 = -10x

Exemplo 14. Neste exemplo, recordaremos a representação de


números nas bases decimal, binária e hexadecimal. Considere a
função f definida no conjunto dos números naturais escritos na base
decimal por f(x) = xbase 2 e g(x) = xbase 16. A função composta f(g(x))
transforma um número natural escrito na base dez em um número
natural na base dois. Assim:

para x = 21base 10, temos f(g(21base 10)) = f(15base 16) = 10101base 2.

para x = 10base 10, temos f(g(10)) = f(A) = 1010base 2.

para x = 200base 10, temos f(g(200)) = f(C8) = 11001000base 2.

Exemplo 15. Se quisermos armazenar e recuperar informações de


forma eficiente em termos de espaço de armazenamento e de tempo
de recuperação, podemos supor que os dados estejam armazenados
em uma tabela e usar a chave de identificação (por exemplo, a
matrícula de alunos, CPF, RG, etc). Quando o número de entradas
identificadas pelas chaves é muito superior ao número de registros
efetivamente armazenados (como o cadastro de clientes de uma
empresa usando o CPF como chave), como podemos proceder, sem
que isso resulte em um espaço de armazenamento excessivamente
grande?

Suponha que o conjunto das chaves identificáveis C = {k1, k2, k3, ... ,
km}, n seja o número de entradas na tabela e que m seja possivelmente
muito maior que n, podemos definir uma função hash: C → {1, 2, 3,
... , n}, dito função de endereçamento, função de randomização ou
função de hashing, da seguinte forma:

hash (k) = (kmod n) + 1

Considere uma chave de identificação numérica constituída


de números entre 0 e 1000 e uma tabela de armazenamento com
entradas de 1 a 17. Assim, a função de hash que podemos definir é

hash (k) = (kmod 17) + 1

Abaixo apresentamos um conjunto de valores de chaves e os


correspondentes endereços de armazenamento, calculados pela
função hash:

Chave k 365 634 2178 7615 730 974 2065 1222 3417
Endereço 9 6 3 17 17 6 9 16 1

18
Matemática Discreta

A função ideal é aquela que gera para cada chave um endereço


diferente, isto é, uma função injetiva, de modo que se k1 ≠ k2 se tenha
f(k1) ≠ f(k2).

A função hash, acima definida, não é injetora, de modo que pode


gerar o mesmo endereço para chaves diferentes, correndo assim
colisões na alocação dos dados. Observe que hash(365) = hash(2065)
= 9, hash(7615) = hash(730) = 17. Para se obter o efeito de uma
função injetora no cálculo do endereçamento serão utilizados métodos
de tratamento de colisões que são estudados em profundidade na
disciplina Estruturas de Dados.

Exemplo 16. Existem vários métodos de tratamento de colisões.


Um deles chama-se endereçamento aberto. Nesse caso, é necessário
que m > n e consiste em procurar sucessivos endereços alternativos
para o novo registro até que um endereço livre seja encontrado. Usa-
se uma função hi(k) com i variando de 0 até n-1:

hi(k) = ((k)mod n + f(i))mod n onde f(i) pode ser f(i) = i, f(i) = i2, etc.

Se tomarmos hi(k) = ((k)mod 7 + i)mod 7 teremos um endereçamento


aberto com teste linear. Para armazenar seqüencialmente os registros
com chaves {33, 44, 63, 66, 84, 93} teremos:

k i hi(k) = (kmod 7 + i)mod 7 Situação


33 0 hi(33) = (33mod 7 + 0)mod 7 = (5 + 0)mod 7 = 5mod 7 = 5 ok
44 0 hi(44) = (44mod 7 + 0)mod 7 = (2 + 0)mod 7 = 2mod 7 = 2 ok
63 0 hi(63) = (63mod 7 + 0)mod 7 = (0 + 0)mod 7 = 0mod 7 = 0 ok
66 0 hi(66) = (66mod 7 + 0)mod 7 = (3 + 0)mod 7 = 3mod 7 = 3 ok
84 0 hi(84) = (84mod 7 + 0)mod 7 = (0 + 0)mod 7 = 0mod 7 = 0 Colisão

1 hi(84) = (84mod 7 + 1)mod 7 = (1 + 0)mod 7 = 1mod 7 = 1 ok


93 0 hi(93) = (93mod 7 + 0)mod 7 = (2 + 0)mod 7 = 2mod 7 = 2 Colisão

1 hi(93) = (93mod 7 + 1)mod 7 = (2 + 1)mod 7 = 3mod 7 = 3 Colisão

2 hi(93) = (93mod 7 + 2)mod 7 = (2 + 2)mod 7 = 4mod 7 = 4 ok

Os dados serão alocados nos seguintes endereços:

0 1 2 3 4 5 6
63 84 44 66 93 33

19
Matemática Discreta

1.8 Seqüência

Uma seqüência é uma função definida em um subconjunto dos


números naturais com imagens num subconjunto dos números reais.
A imagem de um número natural n é denotada por F(n). Usamos a
notação {F(n)} para descrever uma seqüência. O termo F(n) é o termo
de ordem n ou termo geral da seqüência (definição fechada).

1
Exemplo 16: Considere a seqüência cujo termo geral é F(n) = .
n
1 1
A lista dos termos da seqüência é F(1) = 1, F(2) = , F(3) = , F(4)
2 3
1 1
= , F(5) = .
4 5
Exemplo 17.

a) Os cinco primeiros termos da seqüência definida por

A(n) = 2 + 3(n-1) são:

A1 = 2, A2 = 5, A3= 8, A4= 11, A5 = 14.

Observe que trata-se de uma Progressão Aritmética (PA) cujo


termo inicial é 2 e razão r = 3.

Lembre-se que, uma P.A. de termo inicial A1 e razão r, tem termo


geral A(n) = A1 + (n-1).r

b) Os cinco primeiros termos da seqüência definida por

A(n) = 3. 2n-1 são:

A1 = 3, A2 = 6, A3 = 12, A4 = 24, A5 = 48.

Trata-se de uma Progressão Geométrica (PG) cujo termo inicial é


3 e razão q = 2.

20
Matemática Discreta

Recorde que, uma PG de termo inicial A1 e razão q, tem termo


geral A(n) = A1.qn-1.

Exemplo 18. Calcular os termos A1, A2, A3 e A4 das seguintes


seqüências {An} cujo termo geral Na, n ≥ 1, é definido por:

a) An = n2 b) An = 1 + 10n
c) An = (-1)n.n d) An = 2n + 1
e) An = n! f) An = 2 + 3(n-1)

Solução:

a) 1, 4, 9, 16 b) 11, 101, 1001, 10001


c) -1, 2, -3, 4 d) 3, 5, 9, 17
e) 1, 2, 6, 24 f) 2, 5, 8, 11

Exemplo 19. Escrever uma definição fechada (ou termo geral) para
as seguintes seqüências numéricas:

a) 19, 14, 9, 4, ... b) 400, 200, 100, 50, ...


c) 17, 27, 37, 47, 57, ... d) 7, 97, 997, 9997, ...
e) 2, -2, 2, -2, 2, ... f) 1, 1/3, 1/5, 1/7, 1/9, ...
g) 1, 3, 6, 10, 15, ... h) 1, 2, 5, 10, 17, ...

Solução:

400
a) A(n) = 24 – 5n , n ≥ 1 b) A(n) = ,n≥1
2n−1
c) A(n) = 7 + 10n, n ≥ 1 d) A(n) = 10n - 3, n ≥ 1
1
e) A(n) = (-1)n + 1 . 2, n ≥ 1 f) A(n) = ,n≥1
2n − 1
n(n + 1)
g) A(n) = ,n≥1 h) A(n) = 1 + (n - 1)2, n ≥ 1
2

Aprenda Praticando - Exercício Proposto 1.1

Agora é com você... Apresentamos vários exercícios sobre função.


Você deve procurar solucioná-los e caso tenha alguma dificuldade
discuta com seus colegas nos chats que foram formados. Além disso,

21
Matemática Discreta

procure orientação dos professores executores e tutores da disciplina


nos fóruns de discussão.

Apresentaremos as respostas dos exercícios de números pares.

1. Verificar se cada uma das funções definidas abaixo é injetora,


sobrejetora e bijetora:

a) f : {1, 2, 3} → {a, b, c} f = {(1,a), (2,b), (3,c)}


b) g : {1, 2, 3} → {a, b, c, d} g = {(1,a), (2,b), (3,c)}
c) h ; {1, 2, 3} → {1, 2, 3} h = {(1, 2) , (2,1), (3,2)}
d) p : N → N p (j) = j2 + 2
e) m : N → N m(x) = (x)mod 5
f) q : N → N q(j) = 1 se j é ímpar

q(j) = 0 se j é par
g) r : N → {0, 1} r(j) = 1 se j é ímpar

r(j) = 0 se j é par
h) t : {0, 1, 2, 3, ..., 6} → {0, 1, 2, 3, ..., 6} t(x) = (3x)mod 7
i) f : Z → Z tal que f(x) = 10 + x
j) f: N → N tal que f(x) = 10 + x
k) g: Z → Z tal que f(x) = x/2 se x é par

e f(x) = (x - 1)/2 se x é impar.


l) f: N → Z tal que f(x) = - x/2 se n é par

e f(x) = (x + 1)/2 se x é impar.

2. Determine quais das seguintes funções de R em R são bijetoras.


Apresente a função inversa, quando existir.

a) f(x) = 3x + 4 b) f(x) = -3x2 + 7


c) f(x) = (x+1) / (x2+2) d) f(x) = x5 –1
e) f(x) = x

3. Para cada uma das funções bijetora f de R em R, encontre a


inversa f-1.

a) f(x) = 2x b) f(x) = x3 c) f(x) = (2x + 4)/3

4. Dê uma fórmula explícita para uma função do conjunto dos


inteiros Z com imagens no conjunto dos inteiros Z tal que seja:

a) injetora e não sobrejetora.

b) sobrejetora e não injetora.

22
Matemática Discreta

c) injetora e sobrejetora.

d) não injetora e não sobrejetora.

5. Sejam f, g: N → N, definidas por f(x) = x + 1 e g(x) = 3x

Calcule o seguinte:

a) f o g b) g o f c) f o f
d) g o g e) f o g o f f) g o g o f

6. Sejam f e g as funções do conjunto dos inteiros no conjunto


dos inteiros, definidas como: f(x) = 5x + 2 e g(x) = -2x + 4. Qual a
composição de f o g e g o f?

7. As funções a seguir são aplicações de R em R. Forneça


equações que descrevam as funções compostas g o f e f o g para
cada item.

a) f(x) = 6x3 , g(x)= 2x

b) f(x) =x , g(x) = x

8. As funções a seguir são aplicações de R em R. Forneça


equações que descrevam as funções compostas g o f e f o g para
cada item.

a) f(x) = (x-1)/2 , g(x) = 4x2

x +1 x −1
b) f(x) = , g(x) =
x −1 x +1
9. Para cada uma das seguintes funções de Hash, abaixo, mostre
como os dados seriam inseridos na ordem dada supondo inicialmente
células vazias. Use tratamento de colisões o endereçamento aberto
com teste linear.

a) Hash(x) = (xmod 11 + i)mod 11, células indexadas de 0 a 10, dados:


53, 13, 281, 743, 377, 20, 10, 796.

b) Hash(x) = (xmod 17 + i)mod 17 células indexadas de 0 a 16, dados:


714, 631, 26, 373, 775, 906, 509, 2032, 42, 4, 136, 1028.

10. Armazenar seqüencialmente os registros com chaves {33, 44,


65, 66, 84, 93} numa tabela hash de tamanho 7 com tratamento de
colisões endereçamento aberto com teste quadrático, dado por hi(k) =
(kmod 7 + i2)mod 7, i = 0, 1, 2, 3, 4, 5, 6.

23
Matemática Discreta

Respostas dos Exercícios 1.1

x−4
2. a) f(x) = 3x + 4 é bijetora e a função inversa é f-1(x) = .
3
b) f(x) = -3x2 + 7 não é uma função injetora, pois, f(2) = f(-2) = -5.
Além disso, não é sobrejetora em R. De fato, não existe x∈R,
tal que f(x) = 10.

c) f(x) = (x+1) / (x2+2) não é sobrejetora. Por exemplo, não existe


x∈R, tal que f(x) = 1. Se existisse, teríamos, (x+1)/(x2+2) =
1, ou seja, x2 + 2 = x + 1, que acarreta x2 - x + 1 = 0. Esta
equação não tem solução real, pois ∆ = b2 - 4ac = -3.

d) f(x) = x5 – 1 é bijetora. A inversa é f-1(x) = 5


x +1.
e) f(x) = x não é injetora nem sobrejetora. Observe que f(1,3) =
f(1,4) = 1 e que não existe x∈R tal que f(x) = 0,5.

4. a) f(x) = 3x + 1 se x ≥ 0, f(x) = 3x + 2 se x < 0

b) f(x) = x2 se x > 0, f(x) = -x2 + 8, se x ≤ 0.

c) f(x) = 2x + 1 se x∈Z

d) f(x) = x2 + 2 se x∈Z

6. (f o g)(x) = f(-2x + 4) = 5(-2x + 4) + 2 = -10x + 20+ 2 = -10x + 22

(g o f) (x) = g (5x + 2) = -2(5x + 2) + 4 = -10x – 4 + 4 = -10x

2
x −1  x −1 
8. a) g(f(x)) = g( )= 4  = ( x − 1)2
2  2 
4 x2 −1
f(g(x)) = f(4x ) =
2

2
x +1
−1 1
x +1 x − 1 =
b) g(f(x)) = g( )=
x −1 x +1 x
+1
x −1
x −1
+1
x −1 ) = x +1
f(g(x)) = f( = −x
x +1 x −1
−1
x +1
24
Matemática Discreta

10.

k i h(k) = (kmod 7 + i2)mod 7 Situação

33 0 h(33) = (33mod 7 + 02)mod 7 = (5 + 0)mod 7 = 5 ok


44 0 h(44) = (44mod 7 + 02)mod 7 = (2 + 0)mod 7 = 2 ok
65 0 h(65) = (65mod 7 + 02)mod 7 = (2 + 0)mod 7 = 2 Colisão

1 h(65) = (65mod 7 + 12)mod 7 = (2 + 1)mod 7 = 3 ok


66 0 h(66) = (66mod 7 + 02)mod 7 = (3 + 0)mod 7 = 3 Colisão

1 h(66) = (66mod 7 + 12)mod 7 = (3 + 1)mod 7 = 4 ok


84 0 h(84) = (84mod 7 + 02)mod 7 = (0 + 0)mod 7 = 0 ok
93 0 h(93) = (93mod 7 + 02)mod 7 = (2 + 0)mod 7 = 2 Colisão

1 h(93) = (93mod 7 + 12)mod 7 = (2 + 1)mod 7 = 3 Colisão

2 h(93) = (93mod 7 + 22)mod 7 = (2 + 4)mod 7 = 6 ok

Os dados serão alocados nos seguintes endereços:

0 1 2 3 4 5 6
84 44 65 66 33 93

Conclusão

No primeiro capítulo deste fascículo você aprendeu sobre as


funções, como podem ser utilizadas em aplicações da informática e
computação. Em particular, conheceu a função mod e a função hash,
que serão empregadas em aplicações da disciplina Estrutura de
Dados.

Saiba Mais

Você poderá aprender muito mais sobre funções, consultando os


seguintes livros e sites:

GERSTING, Judith L. Fundamentos Matemáticos para a Ciência

25
Matemática Discreta

da Computação. Tradução Valéria de Magalhães Iorio. Rio de


Janeiro: LTC, 2004.

LIPSCHUTZ, Seimour; LIPSON, Marc Lars. Teoria e Problemas


de Matemática Discreta. Porto Alegre: Bookman, 2004.

SCHEINERMAN, Edward R. Matemática Discreta: uma


introdução. Tradução de Alfredo Alves de Farias. São Paulo:
Pioneira Thomson Learning, 2003.

Orientação de Estudos

O exemplo 12 deste capítulo versou sobre processos de transmissão


de informações de forma segura, como por exemplo, informações de
dados financeiros pela internet. Nesse processo usamos uma chave
de codificação. Daí, a informação é codificada e enviada ao receptor.
Ao recebê-la, o receptor pode decodificá-la usando uma chave de
decodificação.

No sistema criptográfico com chave pública, a chave de


decodificação pode ser obtida da chave de decodificação. O sistema
criptográfico com chave pública inventado por R. L. Rivest, A. Shamir
e L. Adleman usa a função mod e alguns conceitos da teoria dos
números inteiros.

Se você tem interesse no assunto, leia os livros acima indicados


que tratam do assunto de uma forma muito simples e visite os
seguintes sites:
http://www.upis.br/revistavirtual/Cavalcante_%20Teoria%20dos%20
N%FAmeros%20e%20Criptografia_2005_UPIS.pdf

http://www.infowester.com/criptografia.php

http://domenico-deri.sites.uol.com.br/exemplos.html

http://www.penta.ufrgs.br/gere96/segur/cripto_.htm

26
Matemática Discreta

Capítulo 2 - Recursão: um
método de definição

O que é recursão?

A figura acima é um triângulo eqüilátero. No seu interior, maior


triângulo eqüilátero branco de lado L1 tem em cada um de seus lados,
L1
vértices de um triângulo eqüilátero de lado L2 = . Por sua vez, cada
2
triângulo eqüilátero de lado L2, tem em cada um dos seus lados, vértices
L2
de triângulos eqüiláteros de lados L3 = , e assim sucessivamente.
2
De modo que a figura mostra uma sucessão de triângulos eqüiláteros
Ln−1
de lados Ln = , onde o lado de cada triângulo é metade do lado
2
do triângulo anterior. Essa é uma figura construída por recorrência!

Faremos agora uma definição de recursão.

2.1 Recursão

Uma definição na qual o item que está sendo definido aparece


como parte da definição é chamada definição recursiva ou indutiva.
Isto é, o item é definido por meio de uma regra que permite calcular
qualquer caso do item em função do item ou dos itens anteriores.

Assim, uma definição recursiva é constituída de duas partes:

a) Um passo inicial, onde alguns casos simples do item que está


sendo definido são dados explicitamente e,

27
Matemática Discreta

b) Um passo indutivo ou recursivo, onde os outros casos do item


que está sendo definido são dados em termos dos casos anteriores.

Como podemos fazer uso de uma definição recursiva? Podemos


usar recursão para definir funções ou operações, algoritmos, conjuntos
e seqüências.

Atenção

Lembre-se:

Toda definição recursiva é constituída por duas partes.


A primeira parte é do passo inicial, onde serão fornecidos os
dados iniciais do item que se define. A segunda parte é o passo
recursivo, onde é feita de forma recorrente o calcule dos demais
itens em termos dos itens anteriores.

Exemplo 1: Uma seqüência é definida recursivamente,


explicitando-se seu primeiro valor (ou seus primeiros valores) e, a
partir daí, definindo-se outros valores na seqüência em termos dos
valores iniciais.

A seqüência 3, 6, 12, 24, ... é definida recursivamente por:

Passo inicial: A(1) = 3

Passo Recursivo: A(n) = 2 . A(n-1), para n ≥ 2

O cálculo do 5º termo se faz assim:

A(5) = 2 . A(4)

A(4) = 2 . A(3)

A(3) = 2 . A(2)

A(2) = 2 . A(1)

A(1) = 3

A(2) = 2 . 3 = 6

A(3) = 2 . 6 = 12

A(4) = 2 . 12 = 24

A(5) = 2 . 24 = 48

28
Matemática Discreta

Exemplo 2: A seqüência 2, 5, 8, 11, 14, ... é definida recursivamente


por:

Passo inicial: A(1) = 2

Passo recursivo: A(n) = A(n-1) + 3, para n ≥ 2

Para calcular recursivamente o quinto termo A(5) procedemos


assim:

A(5) = A(4) + 3

A(4) = A(3) + 3

A(3) = A(2) + 3

A(2) = A(1) + 3

A(1) = 2

A(2) = 2 + 3 = 5

A(3) = 5 + 3 = 8

A(4) = 8 + 3 = 11

A(5) = 11 + 3 = 14

Exemplo 3: A seqüência de Fibonacci é definida recursivamente


por:

Passo inicial: F(1) = 1, F(2) = 1

Passo recursivo: F(n)= F(n-1) + F(n-2), n ≥ 3 é constituída dos


termos 1, 1, 2, 3, 5, 8 ,13, 21, 34, ...

Calcule recursivamente F(6).

F(6) = F(5) + F(4)

F(5) = F(4) + F(3)

F(4) = F(3) + F(2)

F(3) = F2) + F(1)

F(2) = 1

F(1) = 1

F(3) = 1 + 1 = 2

F(4) = 2 +1 = 3

29
Matemática Discreta

F(5) = 3 + 2 = 5

F(6) = 5 +3 = 8

Exemplo 4: Uma função pode ser definida por recursividade. Por


exemplo, a função MDC calcula o máximo divisor comum de dois
inteiros positivos, pode ser definida assim:

MDC(x, y) = y se x ≥ y e xmod y = 0

MDC(x, y) = MDC(y,x) se x < y

MDC(x, y) = MDC(y, xmod y) caso contrário.

O cálculo do MDC de x = 72 e y = 20 se processa dessa maneira:

MDC (72, 20) = MDC(20, 12) = MDC (12, 8) = MDC(8, 4) = 4

Exemplo 5. Recursão em programação refere-se a um procedimento


ou função que chama a si mesmo, um módulo recursivo. Para alguns
tipos de problemas um módulo recursivo possibilita soluções mais
simples e “naturais”, conforme exemplo seguinte:

{Função recursiva para multiplicação de dois inteiros. Efetua a


multiplicação por somas sucessivas.}
função multiplica (m, n: inteiro): inteiro

{Executa multiplicação utilizando somas sucessivas.

Entrada: dois operandos m e n e assume que n > 0

Saída: Retorna m * n

inicio {multiplica}

se n = 1 então

multiplica : = m

senão

multiplica : = m + multiplica (m , n –1);

fim {multiplica}

Observação: Para definir um módulo recursivo, precisamos


identificar dois elementos: o passo recursivo e a condição de
parada. No exemplo citado, a condição de parada é satisfeita quando
n = 1, enquanto o passo recursivo aparece na linha “multiplica: = m +
multiplica (m, n – 1)” onde aparece a função chamando ela mesma.

De um modo geral, um módulo recursivo segue o algoritmo


seguinte:

30
Matemática Discreta

se <condição de parada é satisfeita> então

Resolva

senão

Divida o problema num caso mais simples utilizando recursão.

No exemplo acima, qual o valor de saída para m = 5 e n = 4?

multiplica(5,4) = 5 + multiplica(5,3)

multiplica(5,3) = 5 + multiplica(5,2)

multiplica(5,2) = 5 + multiplica(5,1)

multiplica(5,1) = 5

multiplica(5,2) = 5 = 5 = 10

multiplica(5,3) = 5 + 10 = 15

multiplica(5,4) = 5 + 15 = 20

Exemplo 6. Forneça uma definição recursiva para cada uma das


seguintes sequências:

a) 7, 97, 997, 9997, ...

b) sequência T(n) de números triangulares:

T(1) = 1 T(2) = 3 T(3) = 6 T(4) = 10

n = 1 n = 2 n = 3 n=4

c) 231 é um número triangular?

d) Quais os números triangulares entre 200 e 300?

a) A seqüência 7, 97, 997, 9997, ... tem termo geral A(n) = 10n – 3,
com n ≥ 1. Logo, podemos escrever A(n-1) = 10n-1 -7, de modo que:

10 . A(n-1) = 10(10n-1 – 3) = 10n – 30 = (10n – 3) - 27 = A(n) – 27.

Assim, A(n) = 10.A(n-1) + 27 para n ≥ 2, A(1) = 7 é a definição


recursiva da seqüência.

31
Matemática Discreta

b) Observe que T(1) = 1, T(2) = T(1) + 2, T(3) = T(2) + 3, logo T(n)


= T(n-1) + n , para n ≥ 2.

A definição recursiva é T(1) = 1, T(n) = T(n-1) + n, n ≥ 2.

n2 + n
c) Uma fórmula fechada para T(n) é T(n) = para n ≥ 1 (Prove).
2
Assim, para 231 seja um número triangular, devemos encontrar n tal
n2 + n
que 231 = . Isto é, n2 + n - 462 = 0. Resolvendo a equação,
2
−1 ± 1 + 1848 −1 ± 43
temos que n = = . Assim, T(21) = 231.
2 2
d) 231, 253, 276 e 300.

Exemplo 7. A função chão f(x) = x associa a cada número real x


o maior inteiro menor ou igual a x. Definimos a seqüência T por:

T(1) = 1

T(n) = 2 . T ( n/2 ) para n ≥ 2.

Vamos calcular recursivamente T(73).

T(73) = 2 . T( 73/2 ) = 2 . T(36) =

T(36) = 2 . T ( 36/2 ) = 2 . T(18) =

T(18) = 2 . T ( 18/2 ) = 2 . T(9)

T(9) = 2 . T ( 9/2 ) = 2 . T (4)

T(4) = 2 . T ( 4/2 ) = 2 . T(2)

T(2) = 2 . T ( 2/2 ) = 2 . T(1)

T(1) = 1

T(2) = 2 . 1 = 2

T(4) = 2 . 2 = 4

T(9) = 2 . 4 = 8

T(18) = 2 . 8 = 16

T(36) = 2 . 16 = 32

T(73) = 2 . 32 = 64

Exemplo 8. Considere o seguinte algoritmo recursivo em C que

32
Matemática Discreta

ordena os elementos de uma lista L= [L(1), L(2), L(3), ... , L(j)] onde j é
o comprimento da lista:
Lista ORD(lista L, int J)

if (J == 1) {

return L; A lista está ordenada, imprima a lista.

else if (J > 1) {

Procure o índice I entre 1 e J do maior elemento tal que L(I) > L(J)

Troque L(I) por L(J)

return ORD(L, J-1);

Simule a saída para a entrada L= [2, 7, 4, -3, 8, 5] e j = 6

Solução:

ORD([2, 7, 4, -3, 8, 5], 6) = [2, 7, 4, -3, 5, 8]

ORD([2, 7, 4, -3, 5, 8], 5) = [2, 5, 4, -3, 7, 8]

ORD([2, 5, 4, -3, 7, 8], 4) = [2, -3, 4, 5, 7, 8]

ORD([2, -3, 4, 5, 7, 8], 3) = [2, -3, 4, 5, 7, 8]

ORD([2, -3, 4, 5, 7, 8], 2) = [-3, 2, 4, 5, 7, 8]

ORD([2, -3, 4, 5, 7, 8], 1) = [-3, 2, 4, 5, 7, 8]

Exemplo 9. Considere a função F definida no conjunto dos números


naturais do seguinte modo:

F(1) = 1

F(n) = n + F(n-1) para n ≥ 2. Vamos calcular F(5).

F(5) = 5 + F(4) = 5 + 4 + F(3)

= 5 + 4 + 3 + F(2) = 5 + 4 + 3 + 3 + 2 + F(1)

=5+4+3+2+1

= 5 + 4 + 3 + 2 + 1 = 15.

Você percebeu que F(n) é a soma de todos os números inteiros


positivos menores ou iguais a n?
n
Assim, F(n) = ∑
i =1
i = 1+ 2 + 3 + 4 + 5 + ... + n.

33
Matemática Discreta

Aprenda Praticando - Exercício Proposto 2.1

Chegou a sua vez! Apresentamos vários exercícios sobre recursão.


Você deve tentar solucioná-los e caso tenha alguma dificuldade,
discuta com seus colegas nos chats que foram formados. Procure
orientação dos professores executores e tutores da disciplina nos
fóruns de discussão, caso persistam dúvidas.

Apresentaremos a seguir resposta dos exercícios de numeração


par.

1. Nos exercícios seguintes, calcular o quinto termo das seqüências


dadas:

a) A(1) = 10, A(n) = A(n-1) + 10, para n ≥ 2.

b) A(1) = 1, A(n) =
1 , para n ≥ 2.
A.(n − 1)
34
Matemática Discreta

c) B(1) = 1, B(n) = B(n-1) + n2, para n ≥ 2.

d) A(1) = 1, A(n) = A(n-1) +


1 , para n ≥ 2.
n
e) P(1) = 1, P(n) = n2.P(n-1) + (n-1), para n ≥ 2.

f) D(1) = 3, D(2) = 5, D(n) = (n-1).D(n-1) + (n-2).D(n-2), para n ≥ 3.

2. Calcule recursivamente o sexto termo de cada uma das


seqüências definidas abaixo:

a) A(1) = 1, A(n) = A(n-1) + 2, n ≥ 2.

b) A(1) = 1, A(n) = 3.A(n-1), n ≥ 2.

c) A(1) = 2, A(n) = [A(n-1)]2, n ≥ 2.

d) A(1) = 91, A(n) = A(n-1) + 9.10n, n ≥ 2.

e) A(1) = 3, A(n) = -2.A(n-1), n ≥ 2.

f) A(1)= 3, A(n) = 3.A(n-1) + 7, n ≥ 2.

3. Forneça uma definição recursiva para:

a) a progressão geométrica com termo inicial 7 e razão 3.

b) a progressão aritmética com termo inicial -12 e razão 5.

c) o fatorial n!, n ≥ 1.

d) o produto de dois números inteiros positivos.

e) o MDC de dois números naturais a e b, a < b.

f) a seqüência 5, 9, 13, 17, ...

g) a seqüência 4, 2, 1 ,½, ¼ , ...

h) a seqüência a, 2a + b, 3a + 2b, 4a + 3b, ...

i) a seqüência a, 2a - b, 3a - 2b , 4a - 3b, ...

j) a seqüência An = 3n - 1 com n > 0

k) a seqüência A(n) = n2 com n > 0

l) a seqüência A(n) = n2 + n + 1

m) a seqüência 1, -1, 1, -1, ...

n) a divisão de dois inteiros positivos.

35
Matemática Discreta

o) a seqüência
1 , 1 + 1 , 1 + 1 + 1 , 1 + 1 + 1 + 1 , ...
0! 0! 1! 0! 1! 2! 0! 1! 2! 3!
p) a seqüência 2, 92, 992, 9992, ...

4. Uma quantia de 500 unidades monetárias foi investida em


uma conta remunerada a uma taxa de juro composto anual de 10%.
Descreva a definição recursiva para P(n), a quantia na conta no início
do n-ésimo ano.

5. A seqüência de números 16, 144, ..., 304, ..., ..., 768, 1232,
2000 é uma subseqüência finita obtida da seqüência de Fibonacci.
Descubra os termos que estão faltando.

6. Que valor é computado pelo seguinte algoritmo, para um valor


de entrada especificado?

int F(int n) {
if (n == 1)
return 1
else
return n + 2*F(n-1);
}

Qual o valor de saída para a entrada n = 6?

7. Que valor é computado pelo seguinte algoritmo, para um valor


de entrada especificado?

int MDC( int a, int b) {


if a = 0
return b
else
return MDC (bmod a, a)
}

Qual o valor de saída para a = 20 e b = 72? Qual o valor de saída


para a = 232 e b = 432?

8. Que valor é computado pelo seguinte algoritmo, para um valor


de entrada especificado?

int FIB (int n) {


if (n == 0)
return 0
else if (n == 1)
return 1

36
Matemática Discreta

else
return = FIB(n-1) + FIB(n-2);
}

Qual o valor de saída para n = 6?

9. A função teto g(x) = x associa a cada real x o menor inteiro


maior ou igual a x. Definimos uma seqüência T por:

a) T(1)= 1

b) T(n) = 2 . T ( n/2 ) para n ≥ 2.

Calcule recursivamente T(85).

10. Definimos a sequência FACT da seguinte forma:

FACT (0) = 1. FACT (n+1) = (n+1) . FACT (n), para n ≥ 0.

Escreva os seis primeiros termos de FACT.

11. Considere a relação de recorrência dada por:

1 2
Y0 = 1, Yn+1 =  Yn +  , onde n ≥ 0.
2 Yn 
Essa relação produz uma seqüência de valores tais que pode ser

usado para aproximar 2 com qualquer grau de precisão.

12. Considere a seqüência definida recursivamente por:

F(1) = 1 e F(n) = 1 , para n > 1.


F (n − 1) + 1
a) Ache os valores dos seis primeiros termos dessa seqüência.

b) Observe o numerador de cada um dos termos da parte (a). Que


seqüência formam?

13. Que valor é computado pelo seguinte algoritmo para um valor


de entrada especificado?

int Q(int a, int b) {


if a < b
return 0
else
return Q(a-b, b) + 1;
}

Qual o valor de saída para Q(15,2)? E para Q(5,5)? E Q(5861,7)?

37
Matemática Discreta

14. Considere o seguinte algoritmo recursivo:

int MAX (int A, int B) {


if (A == 0) or (B == 0)
return A + B
else
return MAX(A-1, B-1) + 1;
}

Calcule o valor de retorno para a entrada A = 7 e B = 13?

15. Considere o seguinte algoritmo recursivo que ordena


os elementos de uma lista L= [L(1), L(2), L(3), ... , L(j)] onde j é o
comprimento da lista:

Lista ORD(lista L, int J) {


if (j == 1)
return L //A lista está ordenada. Imprima a lista.
else if j > 1 //Procure o índice I entre 1 e J do maior elemento tal que L(I) > L(J)
//Troque L(I) por L(J)
return ORD(L, J-1)
}

Simule a saída para a entrada L = [10, 7, 9, 5, 0, -5, -2] e j = 7

16. Considere o seguinte algoritmo recursivo.

int COMB(int n, int p) {


if (n == p) or (p == 0 )
return 1
else
return COMB(n-1, p-1) + COMB(n-1, p);
}

Calcule o valor de saída para a entrada de n = 6 e p = 3.

O que calcula COMB para quaisquer inteiros não negativos n e p?

17. As figuras abaixo mostram quantos pedaços obtemos com n


cortes numa pizza:

38
Matemática Discreta

Dê uma definição recursiva para o número de pedaços P(n) em


função do número de cortes n.

Resp. n=1 n=2 n=3 n=4


P(n) = 2 P(n) = 4 P(n) = 7 P(n) = 11

Definição recursiva P(1) = 2 P(n) = P(n-1) + n, para n ≥ 2

18. Forneça uma definição fechada e uma definição recursiva para


cada uma das seguintes sequências:

a) 9, 99, 999, 9999, ...

b) sequência P(n) de números pentagonais:

...

n=1 n=2 n=3 n=4 n=5

P(1) = 1 P(2) = 5 P(3) = 12 P(4) = 22 P(5) = 5

19. Ache uma definição fechada (fórmula) para as seguintes


seqüências definidas recursivamente por:

Resultados importantes que podem ser usados:


(a1 + an )n
A soma dos termos de uma PA: Sn =
2
a1 (q n − 1)
A soma dos termos de uma PG: Sn =
q −1

39
Matemática Discreta

a) S(1) = 1, S(n) = 3.S(n-1) + 1 , n ≥ 2

b) S(1) = 1, S(n) = 2 – S(n-1), n ≥ 2.

c) S(1) = 1, S(n) = 3.S(n-1) + n, n ≥ 2

d) S(1) = 0, S(2) = 1, S(n)=


S (n − 1) + S (n − 2) , n ≥ 2
2
20. Considere o seguinte algoritmo recursivo:
Função F(n: inteiro): inteiro

Se n < 5 então

Retorne 3*x

Senão

Retorne 2*F(n-1) + 7

Fim Se

Fim

Calcular F(4), F(5), F(12).

21. Considere o seguinte algoritmo recursivo:


Função F(n: inteiro, m: inteiro): inteiro

Se n < m então

Retorne -3

Senão

Retorne F(n-m, m+3) + m

Fim Se

Fim

Calcular F(2,7), F(5,3) e F(15,3).

40
Matemática Discreta

http://www.interaula.com/matweb/alegria/fibon//seqfib1.htm

Respostas dos Exercícios 2.1

2. a) 11

b) 243

c) 4.294.967.296

d) 9999991

e) -64

f) 523

41
Matemática Discreta

4. P(0) = 500

P(n) = 1,1.P(n-1), n ≥ 1.

6. 187

8. 8

10. 1, 2, 6, 24, 120, 720

12. a) 1, 1 , 2, 3, 5, 8
2 3 5 8 13
b) Formas a seqüência de Fibonacci.

14.

MAX(7, 13) = MAX(6, 12) + 1

MAX(6, 12) = MAX(5, 11) + 1

MAX(5, 11) = MAX(4,10) + 1

MAX(4, 10) = MAX(3,9) + 1

MAX(3, 9) = MAX(2,8) + 1

MAX(2, 8) = MAX(1, 7) + 1

MAX(1,7) = MAX(0, 6) + 1

MAX(0,6) = 6

MAX(1,7) = 7

MAX(2, 8) = 8

MAX(3, 9) = 9

MAX(4, 10) = 10

MAX(5, 11) = 11

MAX(6, 12) = 12

MAX(7, 13) = 13

A função MAX retorna o maior valor entre A e B.

16. a) 20

b) O algoritmo retorna C

18. a) S(n) = 10n – 1, para n ≥ 1 é uma definição fechada para a


seqüência 9, 99, 999, 9999, ...

42
Matemática Discreta

Uma definição recursiva é: S(1) = 1, S(n) = 10.S(n-1) + 9, para n ≥


2

b) Observe que:

P(1) = 1

P(2) = 5 = 1 + 4 = P(1) + 4

P(3) = 12 = 1 + 4 + 7 = P(2) + 7

P(4) = 22 = 1 + 4 + 7 + 10 = P(3) + 10

P(5) = 35 = 1+ 4 + 7 + 10 + 13 = P(4) + 13

...

P(n) = P(n-1) + 3n – 2, pois a seqüência 1, 4, 7, 10, 13, ... é


uma PA de razão 3 e termo inicial 1, de modo que

an = 1 + (n-1).3 = 1 + 3n - 3 = 3n - 2

Assim, a definição recursiva é:

P(1) = 1, P(n) = P(n-1) + 3n -2 , para n ≥ 2

A definição fechada é obtida análoga:

P(1) = 1

P(2) = 5 = 1 + 4

P(3) = 12 = 1 + 4 + 7

P(4) = 22 = 1 + 4 + 7

P(5) = 35 = 1+ 4 + 7 + 10 + 13

...

P(n) = 1 + 4 + 7 + 10 + 13 + ... (3n-2).

Observe que P(n) é a soma dos termos de


uma P.A. de termo inicial 1 e razão 3, logo P(n) =
(1 + 3n − 2).n (3n − 1)n 3n 2 − n
= = , para n ≥ 1.
2 2 2
20. F(4) = 12

F(5) = 2.F(4) + 7 = 2(12) + 7 = 31

F(6) = 2.F(5) + 7 = 62 + 7 = 69

43
Matemática Discreta

Conclusão

Você conheceu no segundo capítulo deste fascículo o método da


recursão. Ele é usado na definição de funções, seqüências, algoritmos
e diversos outros procedimentos computacionais. Aprendeu como
formular um algoritmo recursivo em aplicações da informática e
computação.

Saiba Mais

Você poderá aprender muito mais sobre recursão, consultando os


seguintes livros e sites:

GERSTING, Judith L. Fundamentos Matemáticos para a Ciência


da Computação. Tradução Valéria de Magalhães Iorio. Rio de
Janeiro: LTC, 2004.

LIPSCHUTZ, Seimour; LIPSON, Marc Lars. Teoria e Problemas


de Matemática Discreta. Porto Alegre: Bookman, 2004.

SCHEINERMAN, Edward R. Matemática Discreta: uma


introdução. Tradução de Alfredo Alves de Farias. São Paulo:
Pioneira Thomson Learning, 2003.

44
Matemática Discreta

Capítulo 03 - Teoremas e
Técnicas de Provas

O que é um teorema?

Você lembra o Teorema de Pitágoras, não é? A figura acima ilustra


muito bem o que esse teorema afirma: A soma dos quadrados dos
catetos de um triângulo retângulo é igual ao quadrado da hipotenusa.
A figura acima ilustra uma prova desse teorema.

Definimos um teorema como qualquer afirmação declarativa


sobre matemática, para a qual existe uma prova. Afirmações cuja
veracidade não se pode garantir são chamadas de conjecturas.

Os teoremas em geral são expressos sob a forma “se P então Q”


(P → Q) onde P e Q podem representar sentenças compostas. Na
afirmação “se P então Q”, P é chamado de hipótese e Q é a conclusão.
Podemos escrever teoremas também na forma P ↔ Q onde se lê: “P
se e somente se Q”. Recorde que P ↔ Q é equivalente a (P → Q) ∧
(Q → P).

Por exemplo, considere a afirmação “Se x e y são números pares


então x + y é também um número par”. Aqui, a hipótese P é “x e y são
números pares” e a conclusão Q é “a soma x + y é um número par”.
O teorema afirma que, se x e y são ambos pares então, x + y é um
número par. A sentença não exclui a possibilidade de x + y ser par
quando x ou y não for par. Na verdade, se x e y não são pares então
x + y é par. A única circunstância em que a afirmação é falsa é quando
P é verdadeira (x e y pares) e Q é falsa (x + y ímpar).

45
Matemática Discreta

Numa afirmação P → Q podemos ter a condição P verdadeira ou


falsa e a condição Q verdadeira ou falsa. Se a afirmação P → Q é
verdadeira temos o seguinte:

Hipótese P Conclusão Q P→Q

V (x = 2, y = 4) V (x + y = 6) possível
V (x = 2, y = 4) F (x + y = 7) impossível
F (x = 3, y = 5) V (x + y = 8) possível
F (x = 2, y = 5) F (x + y = 7) possível

Exemplo 1. Como podemos escrever afirmações sob a forma “Se


P então Q”? Veja os exemplos:

a) O produto de um inteiro ímpar e um inteiro par é par. Se x é um


inteiro ímpar e y é um inteiro par então x.y é um inteiro par.

b) O quadrado de um inteiro ímpar é ímpar. Se x um inteiro ímpar


então x2 é impar.

c) O quadrado de um inteiro primo não é primo. Se x é um número


primo então x2 não é primo.

d) A soma de um inteiro par com um ímpar é par. Se x é par e y é


ímpar então x + y é ímpar.

Exemplo 2. Suponha uma conjectura P → Q e queremos mostrar


que é falsa. Devemos encontrar um contra-exemplo, ou seja, uma
situação em que P é verdadeira e Q é falsa. No caso da afirmação
“Se x é um número primo então x é ímpar”. Claramente trata-se de
uma proposição falsa. Basta escolher x = 2.

No exemplo acima, vimos que quando queremos refutar uma


conjectura, um contra-exemplo é suficiente. Mas para provar uma
afirmação, em geral, muitos exemplos não provam a suposição.
A única exceção dessa situação ocorre quando uma afirmação é
feita sobre um conjunto finito. Nesse caso, podemos verificar se a
proposição é verdadeira para todos os elementos do conjunto.

No caso da asserção: “Se um inteiro entre 2 e 13 é divisível por


4 então também é divisível por 2”, ela pode ser provada verdadeira
quando mostramos que é verdadeira para cada um dos números
inteiros entre 2 e 13. É claro que não podemos usar o mesmo
procedimento para provar que “todo número inteiro divisível por 4
também é divisível por 2”.

46
Matemática Discreta

3.1 Estratégias de Provas

Diversas formas podem ser usadas para provar uma asserção do


tipo “Se P então Q”. Abordaremos algumas delas.

3.1.1 Prova Direta

Quando você quer provar que uma proposição P → Q é verdadeira


deve-se supor que a hipótese P é verdadeira e deduzir que a conclusão
Q é verdadeira.

Exemplo 3. Provar: “Se x e y são inteiros pares então x + y é par”.

Prova:

Suponha que x e y são inteiros pares (Hipótese). Isto significa que


x e y são ambos divisíveis por 2. Logo, existem inteiros m e n tais que
x = 2.m e y = 2.n. Como x + y = 2 . m + 2 . n = 2 . (m + n), concluímos
que existe um inteiro c = m + n tal que x + y = 2.c.

Portanto x + y é divisível por 2. Logo, x + y é par (Conclusão).

Exemplo 4. “Se um inteiro é divisível por 6 então ele também é


divisível por 3”.

Prova:

Seja x um inteiro divisível por 6. Então existe um inteiro k tal que x


= 6 . k. Pondo 6 = 3 . 2, podemos escrever x = (3 . 2) . k = 3 . (2 . k).

Como 2 . k é um inteiro e escrevendo 2 . k = m, temos que x = 3.m,


com m inteiro. Logo, x é divisível por 3.

Exemplo 5. Se x é um inteiro par então y = x + 5 é inteiro ímpar.

Prova:

Assumimos que x é um inteiro par. Então existe um inteiro n tal


que x = 2 . n.

Como y = x + 5 então y = 2 . n + 5 = 2n + 4 + 1 = 2 . (n+2) + 1.


Pondo n + 2 = m, temos que y = 2 . m + 1, onde m é um inteiro.
Conseqüentemente, y é um número ímpar.

Exemplo 6. A soma de um inteiro com o seu quadrado é um número


par. Pondo na forma P → Q temos: Se x é um número inteiro então x
+ x2 é par.

47
Matemática Discreta

Prova:

Seja x um número inteiro.

Se x é par, então x = 2 . n e x2 = (2 . n)2 = 4 . n2, de modo que x + x2


= 2 . n + 4 . n2 = 2(n + 2n2). Pondo m = n + 2n2, temos que x + x2 = 2m.
Conseqüentemente x + x2 é par.

Se x é ímpar, x = 2.n + 1 para algum inteiro n. Assim, x + x2 =


2n + 1 +(2n + 1)2 = 2.n + 1 + 4n2 + 4.n + 1 = 4n2 + 6.n + 2 = 2(2n2 +
3n + 1). De modo que x + x2 = 2.m, onde m é o inteiro 2n2 + 3n + 1.
Conseqüentemente x + x2 é par.

3.1.2 Prova Indireta

Você deve lembrar que no fascículo 1 provamos algumas


equivalências entre proposições. Uma delas foi que P → Q é
logicamente equivalente a ¬Q → ¬P.

A tabela seguinte mostra isso!

P Q P→Q ¬Q ¬P ¬Q→¬P
V V V F F V
V F F V F F
F V V F V V
F F V V V V

Assim, uma segunda estratégia de prova tem inicio quando


assumimos que a conclusão Q é falsa e, então mostrar que a hipótese
P é falsa.

A afirmação ¬ Q → ¬ P é chamada de contra-positiva da afirmação


P → Q. A prova indireta é também chamada de contra-positiva.

Exemplo 7. Formularemos contra-positiva ¬ Q → ¬ P das seguintes


proposições P → Q:

a) P → Q: Se x é ímpar, então x2 é ímpar. ¬ Q → ¬ P: Se x2 não


é ímpar então x não é ímpar. Equivalentemente podemos
escrever: Se x2 é par então x é par.

b) Se n é um inteiro ímpar então 3n + 5 é um inteiro par. P → Q: Se


x é inteiro ímpar então 3x + 5 um inteiro é par.

Exemplo 8. Use a prova indireta para provar a seguinte proposição


P → Q: Se x é um número par, então x + 3 é ímpar.

48
Matemática Discreta

A contra-positiva ¬ Q → ¬ P é “Se x +3 não é ímpar, então x não é


par”. Isto é, se x + 3 é par, então x é ímpar.

Inicialmente, suponha que x + 3 é par. Desse modo existe n∈Z


tal que x + 3 = 2n. Assim, x = 2n – 3 = 2n – 4 + 1 = 2(n-2) + 1.
Conseqüentemente x = 2.m + 1, onde m = n -2 é inteiro. Logo x é
ímpar.

Exemplo 9. Prove pela contra-positiva que, se o quadrado de um


inteiro é par então x é par.

A contra-positiva de “n2 par → n par ” é “n ímpar → n2 ímpar”.

Assuma que n = 2x + 1 com x inteiro.

Então n2 = (2x + 1)2 = 4x2 + 4x + 1 = 2(2x2 + 2x) + 1 = 2.p + 1, onde


p = 2x2 + 2x é inteiro. Assim, n2 é ímpar.

3.1.3 Prova por contradição (Redução ao absurdo)

Suponhamos que queremos provar P → Q. Sabemos, porém, que


(P ∧ ¬Q) → Falso. Assim, para provarmos P → Q, admitimos P e não
Q e mostraremos que isso implica algo falso. Veja tabela-verdade
abaixo:

P Q P→Q ¬Q P ∧ ¬Q F (P ∧ ¬Q) → Falso

V V V F F F V
V F F V V F F
F V V F F F V
F F V V F F V

Exemplo 10. Se x é um número par, então x + 3 é ímpar. Aqui, x


é um número par é a hipótese P e a conclusão Q é x + 3 é ímpar.

Admitimos P e não Q. Isto é, suponhamos que x é um número par


e que x + 3 é par.

Então, x = 2.n e x + 3 = 2.m para inteiros n e m. Assim, por um lado


x = 2.n e por outro x = 2.m – 3 = 2.m – 4 + 1 = 2.(m-2) + 1, isto é x é
par e x é ímpar, o que é uma contradição. Assim x + 3 é impar.

Exemplo 11. O conjunto dos números primos é infinito.

Suponha que o conjunto dos números primos seja finito. Então


existem n primos, a saber: p1, p2, p3, ... , pn.

49
Matemática Discreta

Considere o número x = p1, p2, p3, ... , pn + 1. O número x não é


divisível por nenhum dos primos p1, p2, p3, ... , pn (deixa resto 1). Logo,
x é mais um primo além dos n primos existente inicialmente. O que
é uma contradição. Logo, é verdadeira a proposição de que existem
infinitos primos.

Aprenda Praticando - Exercício Proposto 3.1

1. Forneça um contra-exemplo para:

a) Se x é um inteiro par e y é um inteiro ímpar então o produto x.y


é impar.

b) Se um número inteiro é primo então o seu quadrado é primo.

2. Forneça uma prova direta das seguintes afirmações:

a) A soma de dois inteiros ímpares é par.

b) A soma de um inteiro ímpar e um par é ímpar.

c) O produto de dois inteiros consecutivos é par.

d) O quadrado de um inteiro par é divisível por 4.

3. Dê uma prova direta para as seguintes proposições ou


apresente um contra-exemplo.

a) O produto de quaisquer três inteiros consecutivos é par.

b) A soma de quaisquer três inteiros consecutivos é par.

c) O produto de um inteiro pelo seu quadrado é par.

d) A soma de um inteiro com o seu cubo é par.

e) Se x é um inteiro primo então x + 4 é primo.

f) Se a e b são inteiros tais que a divide b e b divide a então a = b.

g) Se x é um inteiro positivo então x2 + x + 41 é primo.

4. Prove por contradição que:

a) A soma de dois inteiros negativos é um inteiro negativo.


1
b) Se x é um número real tal que x > 0 então >0
x
50
Matemática Discreta

c) Se a soma de dois números primos é primo então um dos primos


deve ser 2.

d) Se x é diferente de zero, então x2 é positivo.

e) Se n é um inteiro tal que 3.n + 2 é par, então n é par.

5. Prove ou dê um contra-exemplo:

a) Se x e y são números irracionais então o produto x.y é


irracional.

b) Se n é um inteiro positivo qualquer, então 2n + 1 é primo.

c) Se n é um inteiro positivo, então n2 – 79n + 1601 é primo.

6. Prove que o quadrado de um inteiro par é um inteiro par,


usando:

a) prova direta.

b) prova indireta

c) prova por contradição.

7. Prove que se n é um inteiro ímpar então n3 + 5 é um inteiro par,


usando:

a) prova direta

b) prova por contradição

c) prova pela contra-positiva.

8. Prove ou dê um contra-exemplo:

Se x e y são inteiros primos então x.y + 1 é primo

Conclusão

Ao final deste terceiro capitulo, você aprendeu sobre técnicas de


provas de teoremas. Dentre elas, destacamos a prova direta, a prova
pela contra-positiva, prova por contradição e aprendeu a fornecer um
contra-exemplo de uma proposição falsa.

51
Matemática Discreta

Saiba Mais

Caso você queira aprofundar seus conhecimentos sobre técnicas


de provas, consulte os seguintes livros.

GERSTING, Judith L. Fundamentos Matemáticos para a Ciência


da Computação. Tradução Valéria de Magalhães Iorio. Rio de
Janeiro: LTC, 2004.

LIPSCHUTZ, Seimour; LIPSON, Marc Lars. Teoria e Problemas


de Matemática Discreta. Porto Alegre: Bookman, 2004.

SCHEINERMAN, Edward R. Matemática Discreta: uma


introdução. Tradução de Alfredo Alves de Farias. São Paulo:
Pioneira Thomson Learning, 2003.

52
Matemática Discreta

Capítulo 04 - Princípio de
Indução Finita

O Princípio de Indução Finita é uma técnica freqüentemente


usada para demonstrar proposições sobre números inteiros positivos
do tipo ∀n∈N*, n∈N* → P(n), onde P(n) é uma propriedade relativa
aos números inteiros positivos n.

Algumas vezes nos defrontamos com afirmações envolvendo os


números naturais, tais como:

1. P(n) : A soma dos n primeiros números ímpares é n2.

“1 + 3 + 5 + ... + (2n-1) = n2”

2. P(n): A soma dos n primeiros números inteiros positivos é


n(n + 1)
.
2
n(n + 1)
“1 + 2 + 3 + 4 + ...+ n = ”
2
3. P(n): 22n - 1 é divisível por 3, ∀n ≥ 1, n∈N

Para verificar se tais afirmações são verdadeiras para qualquer


inteiro n ≥ 1, não basta “testar” a veracidade das fórmulas substituindo
valores específicos para n. Por mais que as igualdades ganhem
credibilidade, não poderemos garantir sua validade para algum valor
de n que não tenha sido testado.

Vejamos alguns exemplos:

Exemplo 1. Calculando o valor numérico da expressão P(n) = n2 –


n + 17 em vários casos particulares de números inteiros positivos n

53
Matemática Discreta

os resultados encontrados são sempre números primos? Vejamos:

Para n = 1, temos P(1) = 12 – 1 + 17 = 17 (primo)

Para n = 2, temos P(2) = 22 – 2 + 17 = 19 (primo)

Para n = 3, temos P(3) = 9 – 3 + 17 = 23 (primo)

Para n = 4, temos P(4) = 16 – 4 + 17 = 29 (primo)

...

Podemos afirmar que, para todo número inteiro positivo n, P(n) é


um número primo?

É claro que não!

Continuando o cálculo até n = 16 encontraremos sempre números


primos, porém, para n = 17 encontramos que P(17) = 172 - 17 + 17 =
172 = 17 . 17 que não é primo, pois é divisível por 17.

Então, P(n) = n2 – n + 17 não é primo para todo inteiro positivo n.

Exemplo 2. Ao somar os n primeiros números ímpares positivos. O


que encontramos?

Se tentarmos valores pequenos de n obtemos:

S1 = 1 = 12

S2 = 1 + 3 = 22

S3 = 1 + 3 + 5 = 32

S4 = 1 + 3 + 5 + 7 = 42

S5 = 1 + 3 + 5 + 7 + 9 = 52

S6 = 1 + 3 + 5 + 7 + 9 + 11 = 62

S7 = 1 + 3 + 5 + 7 + 9 + 11 + 13 = 72

É fácil observar que obtemos quadrados como soma. Na verdade,


pelos exemplos, a soma dos n primeiros números ímpares positivos
é

Sn = 1 + 3 + 5+ + 7 + ... + (2n-1) = n2. Mas a observação é válida


apenas para os sete primeiros valores de n.

Será que isso é válido para todos os valores de n? Como podemos


provar essa afirmação?

54
Matemática Discreta

A demonstração de que uma propriedade P, relativa aos números


naturais, é verdadeira para todo numero natural n ≥ 1, pode ser feita
pelo método que chamamos de Princípio de Indução Finita, que pode
ser enunciado assim:
Seja P(n) uma proposição que queremos provar que é verdadeira para todo
número natural n ≥ 1. Se provarmos que:

a) P(1) é verdadeira.

b) Se P(k) verdadeira implica que P(k+1) é verdadeira, ∀k ≥ 1 então, a


proposição P(n) é verdadeira, para todo inteiro n ≥ 1.

Para melhor entender o princípio de indução finita vamos utilizar a


metáfora do dominó. Se você tem uma longa fila de dominós em pé e
você puder assegurar que:

1. O primeiro dominó cairá quando se aplica uma força suficiente


na peça do dominó.

2. Sempre que uma peça de domingo cair, a peça vizinha também


cairá.

Então você pode concluir que todas as peças de dominó cairão.

Como é na prática o principio de indução finita? Alguns exemplos


mostrarão isso.

55
Matemática Discreta

Exemplo 3. Queremos provar que a proposição P(n) seguinte é


verdadeira para todo numero natural n ≥ 1

P(n): 1 + 3 + 5 + 7 ... + (2n - 1) = n.

Parte 1. Devemos provar que P(1) é verdadeira, isto é:

1 = 12

1=1

Parte 2. Supondo que P(n) é verdadeira para n = k, devemos


mostrar que P(n) é verdadeira para n = k + 1.

P(k) verdadeira significa que 1 + 3 + 5 + ... + (2k-1) = k2. Devemos


mostrar que P(k+1) é também verdadeira, isto é, devemos mostrar
que:

P(k+1): 1 + 3 + 5 + ... + 2k-1 + 2(k+1) -1 = (k+1)2

Como

1 + 3 + 5 + ... + 2k-1 + 2(k+1) -1 =

[1 + 3 + 5 + ... + 2k -1] + 2(k+1) -1 =

k2 + 2k +1 = (Hipótese)

(k+1)2

Logo, pelo Princípio de Indução Finita, a fórmula vale para todo n


≥ 1.

n(n + 1)
Exemplo 4. Provar que 1 + 2 + 3 + 4 + ...+ n = , ∀n ≥ 1.
2
Parte 1. Vamos provar que P(I) é verdadeira. De fato,

1.(1 + 1) 1.(2)
1= ⇒1= ⇒ 1 = 1.
2 2
Parte 2. Suponha que P(n) seja verdadeira para n = k, isto é, que 1
k (k + 1)
+ 2 + 3 + 4 + ... + k = .
2
Queremos provar que P(k+1) é verdadeira, isto é, que 1 + 2 + 3 + 4
(k + 1)(k + 2)
+ ... + k + (k+1) = .
2
Como 1 + 2 + 3 + 4 + ... + k + (k+1) =

[1 + 2 + 3 + 4 + ... + k] + (k+1) =

56
Matemática Discreta

k (k + 1)
+ (k+1) = (Por hipótese)
2
k (k + 1) + 2(k + 1)
=
2
(k + 1)(k + 2)
2
Logo, pelo Princípio de Indução Finita, a fórmula vale para todo n
≥ 1.

Exemplo 5. Mostre que a proposição P(n): 22n - 1 é divisível por 3,


 n ≥ 1, n∈N é verdadeira.

Parte 1. Devemos provar que P(1) é verdadeira, isto é, que para n


= 1, 22.1 – 1 é divisível por 3 (múltiplo de 3).

De fato, 22.1 – 1 = 22 – 1 = 4 – 1 = 3 (múltiplo de 3).

Parte 2. Suponha que P(n) seja verdadeira para n = k, isto é, que


22k - 1 é múltiplo de 3.

Então 22k - 1 = 3.m para algum inteiro m.

Quero provar que P(n) é verdadeira para n = k+1. Ou seja, quero


provar que 22(k+1) - 1 é múltiplo de 3.

Como 22(k+1) - 1 = 22k+2 - 1 = 22k . 22 – 1

= 22k . 4 - 1 = 22k . 3 + 22k - 1

= 3. 22k + 22k -1 =

3. 22k + 3.m = 3(22k + m) múltiplo de 3.

Logo, pelo Princípio de Indução Finita, a fórmula vale para todo n


≥ 1.

Exemplo 6. P(n): 2n ≥ n+1, ∀n∈N

Parte 1. Para n = 0, tem-se que: 20 ≥ 0+1

1 ≥ 1 verdadeiro.

Parte 2. Devemos mostrar que P(n) é verdadeira para n = k+1


sempre que P(n) é verdadeira para n = k.

Ou seja, que 2k+1 ≥ k+2 sempre que 2k ≥ k +1

Ora, 2k+1 = 2. 2k ≥ 2(k+1) = (hipótese)

2k + 2 ≥ k + 2

57
Matemática Discreta

Logo, pelo Princípio de Indução Finita, a fórmula vale para todo n


≥1

Exemplo 7. Seja S(n) o termo geral de uma seqüência tal que S(1)
= 2 e S(n) = 3*S(n-1) - 1 para n > 1.

a) Escreva os cinco primeiros termos de S.

3n + 1
b) Mostre por indução que S(n) =
2
Solução: a) S(1)= 2,

S(2) = 3.S(1) - 1 = 3.2 - 1 = 5,

S(3) = 3.S(2) - 1 = 3.5 - 1 = 14,

S(4) = 3.S(3) - 1 = 3.14 - 1 = 41,

S(5) = 3.S(4) - 1 = 3.41 - 1 = 122

3n + 1
b) Queremos provar que S(n) =
2
31 + 1 4
Parte 1. Para n = 1, temos que S(1) = = = 2.
2 2
Parte 2. Suponha que S(k) = 3k + 1 , queremos provar que S(k+1)
2
3k+1 + 1
= .
2
Ora, pelo passo recursivo temos que
k
S(k+1) = 3.S(k) – 1 = 3. 3 +1 - 1
2
3k +1 + 3 3k +1 + 3 − 2 3k +1 + 1
= −1 = = .
2 2 2
Exemplo 8. Prove por indução matemática que 23n – 1 é divisível
por 7, ∀n ≥ 1, n∈N.

Parte 1. É claro que para n = 1, 23.1 – 1 = 8 – 1 = 7 é divisível por


7.

Parte 2. Suponha que para um inteiro k ≥ 1, 23k – 1 seja divisível


por 7, ou seja, que existe inteiro m tal que 23k – 1 = 7m.

Queremos provar que 23(k+1) – 1 é divisível por 7, isto é, que existe


inteiro p tal que 23(k+1) – 1 = 3p.

58
Matemática Discreta

De fato, 23(k+1) – 1 = 23k + 3 – 1

= 23k. 23 – 1 = 23k.8 - 1

= (23k. 7) + (23k – 1)

Como 23k. 7 é divisível por 7 e 23k – 1 é divisível por 7 por hipótese,


então 23(k+1) – 1 é divisível por 7, tendo em vista ser soma de dois
números divisíveis por 7.

Assim, podemos escrever 23(k+1) – 1 = 23k. 7 + 7m = 7(23k + m)

= 7p, com p = 23k + m.

Exemplo 9. Uma seqüência F(n) é definida recursivamente assim:


F(1) = 3, F(n) = F(n-1) + n, para n>1.

a) Quais os cinco primeiros termos de F?

n2 + n + 4
b) Use indução para provar que F(n) = ,n≥1
2
a) F(1) = 3,

F(2) = F(1) + 2 = 3 + 2 = 5,

F(3) = F(2) + 3 = 5 + 3 = 8

F(4) = F(3) + 4 = 8 + 4 = 12,

F(5) = F(4) + 5 = 12 + 5 = 17.

n2 + n + 4
b) F(n) = ,n≥1
2
Queremos provar que a fórmula dá os termos da seqüência 3, 5,
8, 12, 17, ...

12 + 1 + 4 6
Parte 1. Para n = 1 temos que F(1) = = = 3, a
2 2
fórmula está correta.

k2 + k + 4
Parte 2. Suponha que F(k) = , queremos provar que
2
(k + 1)2 + (k + 1) + 4
F(k+1) = .
2
Ora, pela definição recursiva temos que F(k+1) = F(k) + k+1, logo,
podemos escrever:

k2 + k + 4
F(k+1) = +k+1
2

59
Matemática Discreta

k 2 + k + 4 + 2k + 2 k 2 + 2k +1+ k +1+ 4
= + 2
2
(k +1)2 + (k +1) + 4
+ .
2
Está completa a prova por indução.

Aprenda Praticando - Exercício Proposto 4.1

1. Nos exercícios seguintes, use a indução matemática para


demonstrar que os resultados abaixo indicados são válidos para
qualquer inteiro positivo n. (n ≥ 1)

a) 2 + 6 + 10 + ... + (4n - 2) = 2n2

b) 2 + 4 + 6 + ... + 2n = n(n + 1)

c) 1 + 5 + 9 + ... + (4n - 3) = n(2n - 1)

60
Matemática Discreta

n(n +1) n(n +1)(n + 2)


d) 1 + 3 + 6 + ... + =
2 6
e) 4 + 10 + 16 + ... + (6n - 2) = n(3n + 1)

5n(n +1)
f) 5 + 10 + 15 + ... + 5n =
2
n(n +1)(2n +1)
g) 12 + 22 + 32 + ... + n2 =
6
n2 (n +1)2
h) 13 + 23 + 33 + ... + n3 =
4
n(2n −1)(2n +1)
i) 12 + 32 + 52 + ... + (2n - 1)2 =
3
n(n +1)(2n + 7)
j) 1.3 + 2.4 + 3.5 + ... + n(n+2) =
6
k)
1 + 1 + 1 + ... + 1 = n
1.2 2.3 3.4 n(n +1) n +1
1 + 1 + 1 + ... + 1 n
l) =
1.3 3.5 5.7 (2n −1).(2n +1) 2n +1
m) 1.1! + 2.2! + 3.3! + ... + n.n! = (n+1)! - 1

2. No exercício anterior, escreva sob a forma de somatório, o


primeiro membro de cada uma das igualdades.

3. Prove por meio de indução matemática que as sentenças


seguintes são verdadeiras para todo inteiro n ≥ 1.

a) 32n + 7 é divisível por 8

b) 7n - 2n é divisível por 5

c) 13n - 6n é divisível por 7

d) 25n + 1 + 5n + 2 é divisível por 27

4. Considere a seqüência S(n) definida recursivamente por:

S(1) = 1, S(n) = 2*S(n-1) + 1 para n > 1.

Mostre por indução que S(n) = 2n – 1, para n ≥ 1.

5. Seja S(n) o termo geral de uma seqüência tal que:

S(1) = 2 e S(n) = 3*S(n-1) – 1 para n > 1.

a) Escreva os cinco primeiros termos de S

3n + 1
b) Mostre por indução que S(n) =
2

61
Matemática Discreta

n
1 1 
6. Descobrir e provar por indução uma fórmula para An = 
 0 1
com n ≥ 1.

7. A seqüência D(n) é definida assim:

D(1) = 2, D(2) = 5, D(n) = 5.D(n-1) - 6.D(n-2), para n > 2.

a) Escreva os cinco primeiros termos da seqüência.

b) Mostre por indução que D(n) = 2n-1 + 3n-1 para n ≥ 1.

Respostas dos Exercícios 4.1

2.

n n
a) ∑
i =1
(4i − 2) c) ∑
i =1
(4i − 3)

n n
e) ∑ (6i − 2) g) ∑ i2
i =1 i =1
n n
1
i) ∑
i =1
(2i − 1) 2
k) ∑
i =1 i (i + 1)
n
m) ∑
i =1
i.(i !)

4. Para provar que S(n) = 2n –1, para n ≥ 1, provaremos inicialmente


que a fórmula é válida para n = 1.

De fato S(1) = 21 – 1 = 1.

Agora, suponha que a fórmula é válida para um inteiro k ≥ 11. Isto


é, S(k) = 2k – 1. Queremos provar que S(k+1) = 2k+1 – 1.

Ora, pelo passo recursivo, temos que S(k+1) = 2.S(k) + 1 = 2. (2k –


1) + 1 = 2k+1 + 2 – 1 = 2k+1 + 1.
1
1 1  1 1 
6. A1 =   = ,
0 1 0 1
1 1  1 1  1 2

A2 =  .
0 1 0 1
=
0 1 ,

62
Matemática Discreta

1 2  1 1  1 3
A3 = 0 1 . 0 1 = 0 1  ...

1 n
Conjectura: An =  , ∀n ≥ 1
0 1 
1 1 
Prova por indução: Para n = 1, A =  . 1

0 1
1 k  1 k + 1

1 
Suponha Ak =   , queremos provar que Ak+1 = .
0 1  0
1 k + 1 1 k  1 1  1 k + 1
=   .  =
1  1 
Ora, A k+1
=A .A= 
k
.
0 0 1  0 1 0
1 n
Está provado por indução que An =  , ∀n ≥ 1.
0 1 

Saiba Mais

O Princípio de Indução Finita é usado também na correção de


algoritmos. Por exemplo, queremos saber se o procedimento descrito
pelo fluxograma abaixo termina para quaisquer que sejam os valores
dos dados de entrada.

O algoritmo de Euclides é usado no cálculo do Máximo Divisor


Comum entre dois inteiros positivos m e n, conforme figura seguinte.

63
Matemática Discreta

Mostrar que o procedimento acima termina para quaisquer valores


dos dados de entrada, equivale a mostra que “Se no passo 2 do
procedimento os valores de x e y são inteiros, então os passos 2,
3 e 4 serão executados apenas um número finito de vezes, com os
cálculos terminando no passo 4”.

Faremos a prova por indução sobre o valor de y.

Parte 1. Se y = 1, então após o passo 2, r = 0. Assim, os passos 2,


3 e 4 são executados uma única vez e o cálculo termina no passo 4.

Parte 2. Suponhamos que a proposição é verdadeira para qualquer


x > 0 e qualquer y, tal que 1 ≤ y < k, e mostraremos que ela é verdadeira
para y = k.

Por definição de resto da divisão de números inteiros positivos,


teremos depois da execução do passo 2, 0 ≤ r < k. Se r = 0, a execução

64
Matemática Discreta

termina, numa única vez. Se r > 0, com a execução dos passos 3 e


4, teremos x = k e y = r, e a execução volta ao passo 2. Assim, pela
hipótese de indução, os passos 2, 3 e 4 serão executados um número
finito p de vezes, com os cálculos finalizando no passo 4. De modo
que, ao todo teremos p + 1 execuções para y = k. Concluímos então
que o algoritmo termina para quaisquer valores das entradas.

Caso você queira conhecer mais sobre o princípio de indução


finita, notadamente em provas de correção de algoritmos, consulte as
seguintes obras.

GERSTING, Judith L. Fundamentos Matemáticos para a Ciência


da Computação. Tradução Valéria de Magalhães Iorio. Rio de
Janeiro: LTC, 2004.

LIPSCHUTZ, Seimour; LIPSON, Marc Lars. Teoria e Problemas


de Matemática Discreta. Porto Alegre: Bookman, 2004.

SCHEINERMAN, Edward R. Matemática Discreta: uma


introdução. Tradução de Alfredo Alves de Farias. São Paulo:
Pioneira Thomson Learning, 2003.

Conclusão

Ao finalizar este fascículo, você teve oportunidade de conhecer


mais um método de prova de proposições relativas aos números
naturais: o princípio de indução finita. Você aplicará esse método
quando quiser garantir que um algoritmo ou sua implementação está
correta.

Considerações Finais

Ao final desse fascículo você aprendeu sobre as funções, o que


é recursividade, como os teoremas podem ser provados usando
algumas técnicas de provas e conheceu o princípio de indução finita,
empregado quando se deseja verificar a veracidade de proposições
relativas aos números inteiros. Em todos esses assuntos, foram
abordados exemplos relacionados às áreas de Informática e
Computação. Espero que você utilize esses métodos matemáticos na
solução de problemas de outras disciplinas do curso.

65
Matemática Discreta

Referências

ABE, J. M. Teoria Intuitiva dos Conjuntos. São Paulo: Makron,


199, 266p.

GERSTING, J L. Fundamentos Matemáticos para a Ciências da


Computação. 3 ed., Rio de Janeiro: LTC 1993; 512p.

LIPSCHUTZ, S, LIPSON, M. L. Teoria e Problemas de Matemática


Discreta. 2 ed., Porto Alegre: Bookman, 2004, 511p.

MENEZES, P. B. Matemática Discreta para Computação e


Informática. Porto Alegre: Editora Sagra Luzzatto, 2004; 272p.

PINTO, S. J. Tópicos de Matemática Discreta. Departamento de


Matemática: Universidade de Aveiro, 1999;122p

ROSEN, K. H. Discrete Mathematics and its Applications. 4


ED., New York: WCB/McGraw-Hill, 1999, 654p.

SCHEINERMAN, E. R. Matemática Discreta - Uma Introdução.


São Paulo: Thomson, 2003, 523p.
http://www.interaula.com/matweb/alegria/fibon//seqfib1.htm

http://www.upis.br/revistavirtual/Cavalcante_%20Teoria%20dos%20
N%FAmeros%20e%20Criptografia_2005_UPIS.pdf

http://www.infowester.com/criptografia.php

http://domenico-deri.sites.uol.com.br/exemplos.html

http://www.penta.ufrgs.br/gere96/segur/cripto_.htm

http://www.ipea.gov.br

66

Вам также может понравиться