Recife, 2010Matemática Discreta Francisco Flávio Modesto de Andrade 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 Geral de Ensino a Distância: Profª Marizete Silva Santos Produção Gráfca e Editorial Capa e Editoração: Allyson Vila Nova, Rafael Lira e Italo Amorim Revisão Ortográfca: Marcelo Melo Ilustrações: Diego Almeida Coordenação de Produção: Marizete Silva Santos Sumário Apresentação ........................................................................................4 Capítulo 1 - Função: uma ferramenta importante ..............................6 1.1 O que é função? ...........................................................................7 1.2 Domínio e Contradomínio .............................................................7 1.3 Função Injetora .............................................................................9 1.4 Função Sobrejetora ....................................................................10 1.5 Função Bijetora ...........................................................................10 1.6 Função Inversa ........................................................................... 11 1.7 Função Composta ......................................................................13 1.8 Sequência ...................................................................................16 Capítulo 2 - Recursão: um método de defnição .............................24 2.1 O que é recursão? ......................................................................24 2.2 Recursão ....................................................................................24 Capítulo 3 - Teoremas e Técnicas de Provas ...................................41 3.1 O que é um teorema? .................................................................41 3.2 Estratégias de Provas .................................................................43 Capítulo 4 - Princípio de Indução Finita ...........................................49 Considerações Finais .........................................................................63 Apresentação Caro (a) cursista, Seja bem-vindo (a) ao terceiro módulo de Matemática Discreta! Ao fnalizar 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 sequências numéricas, a função mod e a função hash. No segundo capítulo, você descobrirá o que é uma defnição recursiva ou indutiva. Serão apresentados exemplos de sequências e funções defnidas 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 fm, no quarto capítulo será abordado o princípio de indução matemática que é usado quando se quer provar afrmações sobre propriedades dos números naturais. Esperamos que você tenha bom proveito neste terceiro fascículo, estudando com afnco os assuntos e realizando todos os exercícios propostos. Bons estudos! 6 Matemática Discreta Capítulo 1 - Função: uma ferramenta importante Disponível em http://www.ipea.gov.br A fgura acima representa o gráfco 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 defnir sequê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. 7 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 fgura 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) = 2,0, 8 Matemática Discreta 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) = x 2 , 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 especifcados. Tomemos por exemplo a declaração de uma função em Pascal seguinte: function QUAD (x: real): real Ela especifca 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 defnição de função inclui função de mais de uma variável. Podemos ter uma função f: A 1 xA 2 xA 3 → B, que associa a cada terno do produto cartesiano A 1 xA 2 xA 3 um elemento de B. Por exemplo, f : Z x N x {1, 2} → Z, dada por f(x, y, z) = x y +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) é defnido 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 defnida por f(x) = resto da divisão euclidiana de x por m, m > 0, será denotada por f(x) = x mod m . É também chamada função mod m. 9 Matemática Discreta Por exemplo, para m = 5, temos que: f(7) = 7 mod 5 = 2, f(2) = 2 mod 5 = 2, f(13) = 13 mod 5 = 3, f(8) = 3, f(10) = 10 mod 5 = 0, f(5) = 5 mod 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áfco mostrado na fgura acima à esquerda, ilustra uma função defnida no conjunto A em B. Como elementos diferentes do domínio a função tem imagens diferentes, então f é injetora. A fgura 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) = 2 n é uma função injetora, pois se n 1 ≠ n 2 então . Mas a função f(x) = x 2 , defnida 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) = n mod 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. 10 Matemática Discreta 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. Figura 3 Figura 4 O gráfco da fgura 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áfco 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 fgura à esquerda é o gráfco de uma função sobrejetora, mas não injetora! 1.5 Função Bijetora Uma função é dita bijetora se ela é injetora e sobrejetora. Figura 6 O gráfco 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 11 Matemática Discreta 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 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 fgura 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. Figura 7 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. 12 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 defnida 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 codifcada: 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 decodifcar, 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 = 14 mod 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 13 Matemática Discreta 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 fgura 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 fgura 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, defnida de A em C, como: (f o g) (x) = f (g(x)) A fgura 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, defnidas 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 (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 defnida no conjunto dos números naturais escritos na base g(x) f(x) f(g(x)) 14 Matemática Discreta decimal por f(x) = x base 2 e g(x) = x base 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 = 21 base 10 , temos f(g(21 base 10 )) = f(15 base 16 ) = 10101 base 2 . para x = 10 base 10 , temos f(g(10)) = f(A) = 1010 base 2 . para x = 200 base 10 , temos f(g(200)) = f(C8) = 11001000 base 2 . Exemplo 15. Se quisermos armazenar e recuperar informações de forma efciente 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 identifcação (por exemplo, a matrícula de alunos, CPF, RG, etc). Quando o número de entradas identifcadas 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 identifcáveis C = {k 1 , k 2 , k 3 , ... , k m }, n seja o número de entradas na tabela e que m seja possivelmente muito maior que n, podemos defnir 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) = (k mod n ) + 1 Considere uma chave de identifcaçã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 defnir é hash (k) = (k mod 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 A função ideal é aquela que gera para cada chave um endereço diferente, isto é, uma função injetiva, de modo que se k 1 ≠ k 2 se tenha f(k 1 ) ≠ f(k 2 ). 15 Matemática Discreta A função hash, acima defnida, 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 h i (k) com i variando de 0 até n-1: h i (k) = ((k) mod n + f(i)) mod n onde f(i) pode ser f(i) = i, f(i) = i 2 , etc. Se tomarmos h i (k) = ((k) mod 7 + i) mod 7 teremos um endereçamento aberto com teste linear. Para armazenar sequencialmente os registros com chaves {33, 44, 63, 66, 84, 93} teremos: k i h i (k) = (k mod 7 + i) mod 7 Situação 33 0 h i (33) = (33 mod 7 + 0) mod 7 = (5 + 0) mod 7 = 5 mod 7 = 5 ok 44 0 h i (44) = (44 mod 7 + 0) mod 7 = (2 + 0) mod 7 = 2 mod 7 = 2 ok 63 0 h i (63) = (63 mod 7 + 0) mod 7 = (0 + 0) mod 7 = 0 mod 7 = 0 ok 66 0 h i (66) = (66 mod 7 + 0) mod 7 = (3 + 0) mod 7 = 3 mod 7 = 3 ok 84 0 1 h i (84) = (84 mod 7 + 0) mod 7 = (0 + 0) mod 7 = 0 mod 7 = 0 h i (84) = (84 mod 7 + 1) mod 7 = (1 + 0) mod 7 = 1 mod 7 = 1 Colisão ok 93 0 1 2 h i (93) = (93 mod 7 + 0) mod 7 = (2 + 0) mod 7 = 2 mod 7 = 2 h i (93) = (93 mod 7 + 1) mod 7 = (2 + 1) mod 7 = 3 mod 7 = 3 h i (93) = (93 mod 7 + 2) mod 7 = (2 + 2) mod 7 = 4 mod 7 = 4 Colisão Colisão ok Os dados serão alocados nos seguintes endereços: 0 1 2 3 4 5 6 63 84 44 66 93 33 16 Matemática Discreta 1.8 Sequência Uma sequência é uma função defnida 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 sequência. O termo F(n) é o termo de ordem n ou termo geral da sequência (defnição fechada). Exemplo 17. Considere a sequência cujo termo geral é F(n) = 1 n . A lista dos termos da sequência é F(1) = 1, F(2) = 1 2 , F(3) = 1 3 , F(4) = 1 4 , F(5) = 1 5 . Exemplo 18. a) Os cinco primeiros termos da sequência defnida por A(n) = 2 + 3(n-1) são: A 1 = 2, A 2 = 5, A 3 = 8, A 4 = 11, A 5 = 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 A 1 e razão r, tem termo geral A(n) = A 1 + (n-1).r b) Os cinco primeiros termos da sequência defnida por A(n) = 3. 2 n-1 são: A 1 = 3, A 2 = 6, A 3 = 12, A 4 = 24, A 5 = 48. Trata-se de uma Progressão Geométrica (PG) cujo termo inicial é 3 e razão q = 2. 17 Matemática Discreta Recorde que, uma PG de termo inicial A 1 e razão q, tem termo geral A(n) = A 1 .q n-1 . Exemplo 19. Calcular os termos A 1 , A 2 , A 3 e A 4 das seguintes sequências {A n } cujo termo geral Na, n ≥ 1, é defnido por: a) A n = n 2 b) A n = 1 + 10 n c) A n = (-1) n .n d) A n = 2 n + 1 e) A n = n! f) A n = 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 20. Escrever uma defnição fechada (ou termo geral) para as seguintes sequê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: a) A(n) = 24 – 5n , n ≥ 1 18 Matemática Discreta b) A(n) = 1 400 2 n− , n ≥ 1 c) A(n) = 7 + 10n, n ≥ 1 d) A(n) = 10 n - 3, n ≥ 1 e) A(n) = (-1) n + 1 . 2, n ≥ 1 f) A(n) = 1 2 1 n − , n ≥ 1 g) A(n) = ( 1) 2 n n + , n ≥ 1 h) A(n) = 1 + (n - 1) 2 , n ≥ 1 Aprenda Praticando: Exercícios Propostos 1.1 Agora é com você... Apresentamos vários exercícios sobre função. Você deve procurar solucioná-los e caso tenha alguma difculdade discuta com seus colegas nos chats que foram formados. Além disso, 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. Verifcar se cada uma das funções defnidas 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) = j 2 + 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 19 Matemática Discreta 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) = -3x 2 + 7 c) f(x) = (x+1) / (x 2 +2) d) f(x) = x 5 –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) = x 3 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. c) injetora e sobrejetora. d) não injetora e não sobrejetora. 5. Sejam f, g: N → N, defnidas por f(x) = x + 1 e g(x) = 3x Calcule o seguinte: a) f o g b) g o f c) f o f 20 Matemática Discreta 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, defnidas 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) = 6x 3 , 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) = 4x 2 b) f(x) = 1 1 x x + − , g(x) = 1 1 x x − + 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) = (x mod 11 + i) mod 11 , células indexadas de 0 a 10, dados: 53, 13, 281, 743, 377, 20, 10, 796. b) Hash(x) = (x mod 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 sequencialmente 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 h i (k) = (k mod 7 + i 2 ) mod 7 , i = 0, 1, 2, 3, 4, 5, 6. 21 Matemática Discreta Respostas dos Exercícios Propostos 1.1 2. a) f(x) = 3x + 4 é bijetora e a função inversa é f -1 (x) = 4 3 x − . b) f(x) = -3x 2 + 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) / (x 2 +2) não é sobrejetora. Por exemplo, não existe x∈R, tal que f(x) = 1. Se existisse, teríamos, (x+1)/(x 2 +2) = 1, ou seja, x 2 + 2 = x + 1, que acarreta x 2 - x + 1 = 0. Esta equação não tem solução real, pois ∆ = b 2 - 4ac = -3. d) f(x) = x 5 – 1 é bijetora. A inversa é f -1 (x) = 5 1 x + . 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) = x 2 se x > 0, f(x) = -x 2 + 8, se x ≤ 0. c) f(x) = 2x + 1 se x∈Z d) f(x) = x 2 + 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 8. a) g(f(x)) = g( 1 2 x − ) = 2 2 1 4 ( 1) 2 x x | | | \ . − − = f(g(x)) = f(4x 2 ) = 2 4 1 2 x − b) g(f(x)) = g( 1 1 x x + − ) = 1 1 1 1 1 1 1 x x x x x + − − + + − = f(g(x)) = f( 1 1 x x − + ) = 1 1 1 1 1 1 x x x x x − + + − − − + = 22 Matemática Discreta 10. k i h(k) = (k mod 7 + i 2 ) mod 7 Situação 33 0 h(33) = (33 mod 7 + 02) mod 7 = (5 + 0) mod 7 = 5 ok 44 0 h(44) = (44 mod 7 + 02) mod 7 = (2 + 0) mod 7 = 2 ok 65 0 1 h(65) = (65 mod 7 + 02) mod 7 = (2 + 0) mod 7 = 2 h(65) = (65 mod 7 + 12) mod 7 = (2 + 1) mod 7 = 3 Colisão ok 66 0 1 h(66) = (66 mod 7 + 02) mod 7 = (3 + 0) mod 7 = 3 h(66) = (66 mod 7 + 12) mod 7 = (3 + 1) mod 7 = 4 Colisão ok 84 0 h(84) = (84 mod 7 + 02) mod 7 = (0 + 0) mod 7 = 0 ok 93 0 1 2 h(93) = (93 mod 7 + 02) mod 7 = (2 + 0) mod 7 = 2 h(93) = (93 mod 7 + 12) mod 7 = (2 + 1) mod 7 = 3 h(93) = (93 mod 7 + 22) mod 7 = (2 + 4) mod 7 = 6 Colisão Colisão 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: 23 Matemática Discreta 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. Orientações 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 fnanceiros pela internet. Nesse processo, usamos uma chave de codifcação. Daí, a informação é codifcada e enviada ao receptor. Ao recebê-la, o receptor pode decodifcá-la usando uma chave de decodifcação. No sistema criptográfco com chave pública, a chave de decodifcação pode ser obtida da chave de decodifcação. O sistema criptográfco 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%20Criptografa_2005_UPIS.pdf http://www.infowester.com/criptografa.php http://domenico-deri.sites.uol.com.br/exemplos.html http://www.penta.ufrgs.br/gere96/segur/cripto_.htm 24 Matemática Discreta Capítulo 2 - Recursão: um método de definição 2.1 O que é recursão? A fgura acima é um triângulo equilátero. No seu interior, maior triângulo equilátero branco de lado L 1 tem em cada um de seus lados, vértices de um triângulo equilátero de lado L 2 = 1 2 L . Por sua vez, cada triângulo equilátero de lado L 2 , tem em cada um dos seus lados, vértices de triângulos equiláteros de lados L 3 = 2 2 L , e assim sucessivamente. De modo que a fgura mostra uma sucessão de triângulos equiláteros de lados L n = 1 2 n L − , onde o lado de cada triângulo é metade do lado do triângulo anterior. Essa é uma fgura construída por recorrência! Faremos agora uma defnição de recursão. 2.2 Recursão Uma defnição na qual o item que está sendo defnido aparece como parte da defnição é chamada defnição recursiva ou indutiva. Isto é, o item é defnido por meio de uma regra que permite calcular qualquer caso do item em função do item ou dos itens anteriores. Assim, uma defnição recursiva é constituída de duas partes: a) Um passo inicial, onde alguns casos simples do item que está sendo defnido são dados explicitamente e, b) Um passo indutivo ou recursivo, onde os outros casos do item que está sendo defnido são dados em termos dos casos anteriores. 25 Matemática Discreta Como podemos fazer uso de uma defnição recursiva? Podemos usar recursão para defnir funções ou operações, algoritmos, conjuntos e sequências. Lembre-se: Toda defnição recursiva é constituída por duas partes. A primeira parte é do passo inicial, onde serão fornecidos os dados iniciais do item que se defne. A segunda parte é o passo recursivo, onde é feita de forma recorrente o calcule dos demais itens em termos dos itens anteriores. Exemplo 1. Uma sequência é defnida recursivamente, explicitando-se seu primeiro valor (ou seus primeiros valores) e, a partir daí, defnindo-se outros valores na sequência em termos dos valores iniciais. A sequência 3, 6, 12, 24, ... é defnida 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 Exemplo 2. A sequência 2, 5, 8, 11, 14, ... é defnida 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: 26 Matemática Discreta 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 sequência de Fibonacci é defnida 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 F(5) = 3 + 2 = 5 F(6) = 5 +3 = 8 Exemplo 4. Uma função pode ser defnida por recursividade. Por exemplo, a função MDC calcula o máximo divisor comum de dois inteiros positivos, pode ser defnida assim: MDC(x, y) = y se x ≥ y e x mod y = 0 MDC(x, y) = MDC(y,x) se x < y MDC(x, y) = MDC(y, x mod y ) caso contrário. O cálculo do MDC de x = 72 e y = 20 se processa dessa maneira: 27 Matemática Discreta 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); fm {multiplica} Observação: Para defnir um módulo recursivo, precisamos identifcar 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: 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 28 Matemática Discreta Exemplo 6. Forneça uma defniçã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 sequência 7, 97, 997, 9997, ... tem termo geral A(n) = 10 n – 3, com n ≥ 1. Logo, podemos escrever A(n-1) = 10 n-1 -7, de modo que: 10 . A(n-1) = 10(10 n-1 – 3) = 10 n – 30 = (10 n – 3) - 27 = A(n) – 27. Assim, A(n) = 10.A(n-1) + 27 para n ≥ 2, A(1) = 7 é a defnição recursiva da sequência. 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 defnição recursiva é T(1) = 1, T(n) = T(n-1) + n, n ≥ 2. c) Uma fórmula fechada para T(n) é T(n) = 2 2 n n + para n ≥ 1 (Prove). Assim, para 231 seja um número triangular, devemos encontrar n tal que 231 = 2 2 n n + . Isto é, n 2 + n - 462 = 0. Resolvendo a equação, temos que n = 1 1 1848 1 43 2 2 − ± + − ± = . Assim, T(21) = 231. 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. Defnimos a sequência T por: T(1) = 1 29 Matemática Discreta 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 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 maiorelemento 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] 30 Matemática Discreta 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 defnida 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? Assim, F(n) = 1 n i i = ∑ = 1+ 2 + 3 + 4 + 5 + ... + n. 31 Matemática Discreta Aprenda Praticando: Exercícios Propostos 2.1 Chegou a sua vez! Apresentamos vários exercícios sobre recursão. Você deve tentar solucioná-los e caso tenha alguma difculdade, 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 sequências dadas: a) A(1) = 10, A(n) = A(n-1) + 10, para n ≥ 2. b) A(1) = 1, A(n) = 1 .( 1) A n − , para n ≥ 2. c) B(1) = 1, B(n) = B(n-1) + n 2 , para n ≥ 2. d) A(1) = 1, A(n) = A(n-1) + 1 n , para n ≥ 2. e) P(1) = 1, P(n) = n 2 .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 sequências defnidas 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.10 n , 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 defnição recursiva para: a) a progressão geométrica com termo inicial 7 e razão 3. 32 Matemática Discreta 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 sequência 5, 9, 13, 17, ... g) a sequência 4, 2, 1 ,½, ¼ , ... h) a sequência a, 2a + b, 3a + 2b, 4a + 3b, ... i) a sequência a, 2a - b, 3a - 2b , 4a - 3b, ... j) a sequência An = 3n - 1 com n > 0 k) a sequência A(n) = n 2 com n > 0 l) a sequência A(n) = n 2 + n + 1 m) a sequência 1, -1, 1, -1, ... n) a divisão de dois inteiros positivos. o) a sequência 1 1 1 1 1 1 1 1 1 1 , , , , ... 0! 0! 1! 0! 1! 2! 0! 1! 2! 3! + + + + + + p) a sequê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 defnição recursiva para P(n), a quantia na conta no início do n-ésimo ano. 5. A sequência de números 16, 144, ..., 304, ..., ..., 768, 1232, 2000 é uma subsequência fnita obtida da sequência de Fibonacci. Descubra os termos que estão faltando. 6. Que valor é computado pelo seguinte algoritmo, para um valor de entrada especifcado? 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? 33 Matemática Discreta 7. Que valor é computado pelo seguinte algoritmo, para um valor de entrada especifcado? int MDC( int a, int b) { if a = 0 return b else return MDC (b mod 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 especifcado? int FIB (int n) { if (n == 0) return 0 else if (n == 1) return 1 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. Defnimos uma sequência T por: a) T(1)= 1 b) T(n) = 2 . T ( n/2( ) para n ≥ 2. Calcule recursivamente T(85). 10. Defnimos 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: Y 0 = 1, Y n+1 = 1 2 2 n n Y Y | | | \ . + , onde n ≥ 0. Essa relação produz uma sequência de valores tais que pode ser usado para aproximar 2 com qualquer grau de precisão. 34 Matemática Discreta 12. Considere a sequência defnida recursivamente por: F(1) = 1 e F(n) = 1 ( 1) 1 F n − + , para n > 1. a) Ache os valores dos seis primeiros termos dessa sequência. b) Observe o numerador de cada um dos termos da parte (a). Que sequência formam? 13. Que valor é computado pelo seguinte algoritmo para um valor de entrada especifcado? 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)? 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. 35 Matemática Discreta 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 fguras abaixo mostram quantos pedaços obtemos com n cortes numa pizza: Dê uma defniçã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 Defnição recursiva P(1) = 2 P(n) = P(n-1) + n, para n ≥ 2 18. Forneça uma defnição fechada e uma defniçã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 36 Matemática Discreta 19. Ache uma defnição fechada (fórmula) para as seguintes sequências defnidas recursivamente por: Resultados importantes que podem ser usados: A soma dos termos de uma PA: S n = 1 ( ) 2 n a a n + A soma dos termos de uma PG: Sn = 1 ( 1) 1 n a q q − − 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)= ( 1) ( 2) 2 S n S n − + − , n ≥ 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). 37 Matemática Discreta Respostas dos Exercícios Propostos 2.1 2. a) 11 b) 243 c) 4.294.967.296 d) 9999991 e) -64 f) 523 4. P(0) = 500 P(n) = 1,1.P(n-1), n ≥ 1. 38 Matemática Discreta 6. 187 8. 8 10. 1, 2, 6, 24, 120, 720 12. a) 1, 1 2 3 5 8 , , , , 5 2 3 8 13 b) Formas a sequê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) = 10 n – 1, para n ≥ 1 é uma defnição fechada para a sequência 9, 99, 999, 9999, ... Uma defnição recursiva é: S(1) = 1, S(n) = 10.S(n-1) + 9, para n ≥ 2 b) Observe que: P(1) = 1 39 Matemática Discreta 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 sequência 1, 4, 7, 10, 13, ... é uma PA de razão 3 e termo inicial 1, de modo que a n = 1 + (n-1).3 = 1 + 3n - 3 = 3n - 2 Assim, a defnição recursiva é: P(1) = 1, P(n) = P(n-1) + 3n -2 , para n ≥ 2 A defniçã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) = 2 (1 3 2). (3 1) 3 2 2 2 n n n n n n + − − − = = , para n ≥ 1. 20. F(4) = 12 F(5) = 2.F(4) + 7 = 2(12) + 7 = 31 F(6) = 2.F(5) + 7 = 62 + 7 = 69 Conclusão Você conheceu no segundo capítulo deste fascículo o método da recursão. Ele é usado na defnição de funções, sequências, algoritmos 40 Matemática Discreta 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. 41 Matemática Discreta Capítulo 3 - Teoremas e Técnicas de Provas 3.1 O que é um teorema? Você lembra o Teorema de Pitágoras, não é? A fgura acima ilustra muito bem o que esse teorema afrma: A soma dos quadrados dos catetos de um triângulo retângulo é igual ao quadrado da hipotenusa. Defnimos um teorema como qualquer afrmação declarativa sobre matemática, para a qual existe uma prova. Afrmaçõ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 afrmaçã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 afrmaçã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 afrma 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 afrmação é falsa é quando P é verdadeira (x e y pares) e Q é falsa (x + y ímpar). 42 Matemática Discreta Numa afrmação P → Q podemos ter a condição P verdadeira ou falsa e a condição Q verdadeira ou falsa. Se a afrmaçã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 afrmaçõ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 afrmaçã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 é sufciente. Mas para provar uma afrmação, em geral, muitos exemplos não provam a suposição. A única exceção dessa situação ocorre quando uma afrmação é feita sobre um conjunto fnito. Nesse caso, podemos verifcar 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”. 43 Matemática Discreta 3.2 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.2.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 signifca 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. Consequentemente, 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 + x 2 é par. 44 Matemática Discreta Prova: Seja x um número inteiro. Se x é par, então x = 2 . n e x 2 = (2 . n) 2 = 4 . n 2 , de modo que x + x 2 = 2 . n + 4 . n 2 = 2(n + 2n 2 ). Pondo m = n + 2n 2 , temos que x + x 2 = 2m. Consequentemente x + x 2 é par. Se x é ímpar, x = 2.n + 1 para algum inteiro n. Assim, x + x 2 = 2n + 1 +(2n + 1) 2 = 2.n + 1 + 4n 2 + 4.n + 1 = 4n 2 + 6.n + 2 = 2(2n 2 + 3n + 1). De modo que x + x 2 = 2.m, onde m é o inteiro 2n 2 + 3n + 1. Consequentemente x + x 2 é par. 3.2.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 afrmação ¬ Q → ¬ P é chamada de contra-positiva da afrmaçã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 x 2 é ímpar. ¬ Q → ¬ P: Se x 2 não é ímpar então x não é ímpar. Equivalentemente podemos escrever: Se x 2 é 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. 45 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. Consequentemente 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 “n 2 par → n par ” é “n ímpar → n 2 ímpar”. Assuma que n = 2x + 1 com x inteiro. Então n 2 = (2x + 1) 2 = 4x 2 + 4x + 1 = 2(2x 2 + 2x) + 1 = 2.p + 1, onde p = 2x 2 + 2x é inteiro. Assim, n 2 é ímpar. 3.2.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 é infnito. Suponha que o conjunto dos números primos seja fnito. Então existem n primos, a saber: p 1 , p 2 , p 3 , ... , p n . 46 Matemática Discreta Considere o número x = p 1 , p 2 , p 3 , ... , p n + 1. O número x não é divisível por nenhum dos primos p 1 , p 2 , p 3 , ... , p n (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 infnitos primos. Aprenda Praticando: Exercícios Propostos 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 afrmaçõ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 x 2 + x + 41 é primo. 4. Prove por contradição que: a) A soma de dois inteiros negativos é um inteiro negativo. 47 Matemática Discreta b) Se x é um número real tal que x > 0 então 1 x > 0 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 x 2 é 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 2 n + 1 é primo. c) Se n é um inteiro positivo, então n 2 – 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 n 3 + 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 fnal 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. 48 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. 49 Matemática Discreta Capítulo 4 - Princípio de Indução Finita O Princípio de Indução Finita é uma técnica frequentemente 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 afrmações envolvendo os números naturais, tais como: 1. P(n) : A soma dos n primeiros números ímpares é n 2 . “1 + 3 + 5 + ... + (2n-1) = n 2 ” 2. P(n): A soma dos n primeiros números inteiros positivos é ( 1) 2 n n + . “1 + 2 + 3 + 4 + ...+ n = ( 1) 2 n n + ” 3. P(n): 2 2n - 1 é divisível por 3, ∀n ≥ 1, n∈N Para verifcar se tais afrmações são verdadeiras para qualquer inteiro n ≥ 1, não basta “testar” a veracidade das fórmulas substituindo valores específcos 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) = n 2 – n + 17 em vários casos particulares de números inteiros positivos n os resultados encontrados são sempre números primos? 50 Matemática Discreta Vejamos: Para n = 1, temos P(1) = 1 2 – 1 + 17 = 17 (primo) Para n = 2, temos P(2) = 2 2 – 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) ... Podemosafrmarque,paratodonúmerointeiropositivon,P(n)é umnúmeroprimo? Éclaroquenã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) = n 2 – 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: S 1 = 1 = 1 2 S 2 = 1 + 3 = 2 2 S 3 = 1 + 3 + 5 = 3 2 S 4 = 1 + 3 + 5 + 7 = 4 2 S 5 = 1 + 3 + 5 + 7 + 9 = 5 2 S 6 = 1 + 3 + 5 + 7 + 9 + 11 = 6 2 S 7 = 1 + 3 + 5 + 7 + 9 + 11 + 13 = 7 2 É fácil observar que obtemos quadrados como soma. Na verdade, pelos exemplos, a soma dos n primeiros números ímpares positivos é S n = 1 + 3 + 5+ + 7 + ... + (2n-1) = n 2 . 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 afrmação? 51 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 fnita vamos utilizar a metáfora do dominó. Se você tem uma longa fla de dominós em pé e você puder assegurar que: 1. O primeiro dominó cairá quando se aplica uma força sufciente na peça do dominó. 2. Sempre que uma peça de dominó 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 fnita? Alguns exemplos mostrarão isso. 52 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 = 1 2 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 signifca que 1 + 3 + 5 + ... + (2k-1) = k 2 . 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 = k 2 + 2k +1 = (Hipótese) (k+1) 2 Logo, pelo Princípio de Indução Finita, a fórmula vale para todo n ≥ 1. Exemplo 4. Provar que 1 + 2 + 3 + 4 + ...+ n = ( 1) 2 n n + , ∀n ≥ 1. Parte 1. Vamos provar que P(I) é verdadeira. De fato, 1 = 1.(1 1) 2 + ⇒ 1 = 1.(2) 2 ⇒ 1 = 1. Parte 2. Suponha que P(n) seja verdadeira para n = k, isto é, que 1 + 2 + 3 + 4 + ... + k = ( 1) 2 k k + . Queremos provar que P(k+1) é verdadeira, isto é, que 1 + 2 + 3 + 4 + ... + k + (k+1) = ( 1)( 2) 2 k k + + . Como 1 + 2 + 3 + 4 + ... + k + (k+1) = [1 + 2 + 3 + 4 + ... + k] + (k+1) = 53 Matemática Discreta ( 1) 2 k k + + (k+1) = (Por hipótese) ( 1) 2( 1) 2 k k k + + + = ( 1)( 2) 2 k k + + 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): 2 2n - 1 é divisível por 3, ∀n ≥ 1, n∈N é verdadeira. Parte 1. Devemos provar que P(1) é verdadeira, isto é, que para n = 1, 2 2.1 – 1 é divisível por 3 (múltiplo de 3). De fato, 2 2.1 – 1 = 2 2 – 1 = 4 – 1 = 3 (múltiplo de 3). Parte 2. Suponha que P(n) seja verdadeira para n = k, isto é, que 2 2k - 1 é múltiplo de 3. Então 2 2k - 1 = 3.m para algum inteiro m. Quero provar que P(n) é verdadeira para n = k+1. Ou seja, quero provar que 2 2(k+1) - 1 é múltiplo de 3. Como 2 2(k+1) - 1 = 2 2k+2 - 1 = 2 2k . 2 2 – 1 = 2 2k . 4 - 1 = 2 2k . 3 + 2 2k - 1 = 3. 2 2k + 2 2k -1 = 3. 2 2k + 3.m = 3(2 2k + 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): 2 n ≥ n+1, ∀n∈N Parte 1. Para n = 0, tem-se que: 2 0 ≥ 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 2 k+1 ≥ k+2 sempre que 2 k ≥ k +1 Ora, 2 k+1 = 2. 2 k ≥ 2(k+1) = (hipótese) 2 k + 2 ≥ k + 2 54 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 sequê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. b) Mostre por indução que S(n) = 3 1 2 n + 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 b) Queremos provar que S(n) = 3 1 2 n + Parte 1. Para n = 1, temos que S(1) = 1 3 1 4 2 2 2 + = = . Parte 2. Suponha que S(k) = 3 1 2 k + , queremos provar que S(k+1) = 1 3 1 2 k+ + . Ora, pelo passo recursivo temos que S(k+1) = 3.S(k) – 1 = 3. 3 1 2 k + - 1 = 1 1 1 3 3 3 3 2 3 1 1 2 2 2 k k k + + + + + − + − = = . Exemplo 8. Prove por indução matemática que 2 3n – 1 é divisível por 7, ∀n ≥ 1, n∈N. Parte 1. É claro que para n = 1, 2 3.1 – 1 = 8 – 1 = 7 é divisível por 7. Parte 2. Suponha que para um inteiro k ≥ 1, 2 3k – 1 seja divisível por 7, ou seja, que existe inteiro m tal que 2 3k – 1 = 7m. Queremos provar que 2 3(k+1) – 1 é divisível por 7, isto é, que existe inteiro p tal que 2 3(k+1) – 1 = 3p. 55 Matemática Discreta De fato, 2 3(k+1) – 1 = 2 3k + 3 – 1 = 2 3k . 2 3 – 1 = 2 3k .8 - 1 = (2 3k . 7) + (2 3k – 1) Como 2 3k . 7 é divisível por 7 e 2 3k – 1 é divisível por 7 por hipótese, então 2 3(k+1) – 1 é divisível por 7, tendo em vista ser soma de dois números divisíveis por 7. Assim, podemos escrever 2 3(k+1) – 1 = 2 3k . 7 + 7m = 7(2 3k + m) = 7p, com p = 2 3k + m. Exemplo 9. Uma sequência F(n) é defnida recursivamente assim: F(1) = 3, F(n) = F(n-1) + n, para n>1. a) Quais os cinco primeiros termos de F? b) Use indução para provar que F(n) = 2 4 2 n n + + , n ≥ 1 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. b) F(n) = 2 4 2 n n + + , n ≥ 1 Queremos provar que a fórmula dá os termos da sequência 3, 5, 8, 12, 17, ... Parte 1. Para n = 1 temos que F(1) = 2 1 1 4 6 3 2 2 + + = = , a fórmula está correta. Parte 2. Suponha que F(k) = 2 4 2 k k + + , queremos provar que F(k+1) = 2 ( 1) ( 1) 4 2 k k + + + + . Ora, pela defnição recursiva temos que F(k+1) = F(k) + k+1, logo, podemos escrever: F(k+1) = 2 4 2 k k + + + k + 1 56 Matemática Discreta = 2 4 2 2 2 k k k + + + + + 2 2 1 1 4 2 k k k + + + + + + 2 ( 1) ( 1) 4 2 k k + + + + . Está completa a prova por indução. Aprenda Praticando: Exercícios Propostos 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) = 2n 2 b) 2 + 4 + 6 + ... + 2n = n(n + 1) c) 1 + 5 + 9 + ... + (4n - 3) = n(2n - 1) Nossa, Pedrinho! Por que você está descalço com um tempo desses? É que o armazém do meu pai está em balanço... E como não dá pra contar tudo só com os dedos das mãos... Eu venho descalço, esse é o meu computador! 57 Matemática Discreta d) 1 + 3 + 6 + ... + n(n 1) ( 1)( 2) 2 6 n n n + + + = e) 4 + 10 + 16 + ... + (6n - 2) = n(3n + 1) f) 5 + 10 + 15 + ... + 5n = 5n(n 1) 2 + g) 1 2 + 2 2 + 3 2 + ... + n 2 = ( 1)(2 1) 6 n n n + + h) 1 3 + 2 3 + 3 3 + ... + n 3 = 2 2 ( 1) 4 n n+ i) 1 2 + 3 2 + 5 2 + ... + (2n - 1) 2 = (2 1)(2 1) 3 n n n − + j) 1.3 + 2.4 + 3.5 + ... + n(n+2) = n(n 1)(2n 7) 6 + + k) 1 1 1 1 ... 1.2 2.3 3.4 1 ( 1) n n n n + + + + = + + l) 1 1 1 1 ... 5.7 1.3 3.5 (2 1).(2 1) n n + + + + − + = 2 1 n n+ 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) 3 2n + 7 é divisível por 8 b) 7 n - 2 n é divisível por 5 c) 13 n - 6 n é divisível por 7 d) 2 5n + 1 + 5 n + 2 é divisível por 27 4. Considere a sequência S(n) defnida recursivamente por: S(1) = 1, S(n) = 2*S(n-1) + 1 para n > 1. Mostre por indução que S(n) = 2 n – 1, para n ≥ 1. 5. Seja S(n) o termo geral de uma sequê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 b) Mostre por indução que S(n) = 3 1 2 n + 58 Matemática Discreta 6. Descobrir e provar por indução uma fórmula para A n = 1 1 0 1 n ( ( ¸ ¸ com n ≥ 1. 7. A sequência D(n) é defnida 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 sequência. b) Mostre por indução que D(n) = 2 n-1 + 3 n-1 para n ≥ 1. Respostas dos Exercícios Propostos 4.1 2. a) 1 (4 2) n i i = − ∑ c) 1 (4 3) n i i = − ∑ e) 1 (6 2) n i i = − ∑ g) 2 1 n i i = ∑ i) 2 1 (2 1) n i i = − ∑ k) 1 1 ( 1) n i i i = + ∑ m) 1 .( !) n i i i = ∑ 4. Para provar que S(n) = 2 n –1, para n ≥ 1, provaremos inicialmente que a fórmula é válida para n = 1. De fato S(1) = 2 1 – 1 = 1. Agora, suponha que a fórmula é válida para um inteiro k ≥ 11. Isto é, S(k) = 2 k – 1. Queremos provar que S(k+1) = 2 k+1 – 1. Ora, pelo passo recursivo, temos que S(k+1) = 2.S(k) + 1 = 2. (2 k – 1) + 1 = 2 k+1 + 2 – 1 = 2 k+1 + 1. 59 Matemática Discreta 6. A 1 = 1 1 1 0 1 ( ( ¸ ¸ = 1 1 0 1 ( ( ¸ ¸ , A 2 = 1 1 0 1 ( ( ¸ ¸ . 1 1 0 1 ( ( ¸ ¸ = 1 2 0 1 ( ( ¸ ¸ , A 3 = 1 2 0 1 ( ( ¸ ¸ . 1 1 0 1 ( ( ¸ ¸ = 1 3 0 1 ( ( ¸ ¸ ... Conjectura: A n = 1 n 0 1 ( ( ¸ ¸ , ∀n ≥ 1 Prova por indução: Para n = 1, A 1 = 1 1 0 1 ( ( ¸ ¸ . Suponha A k = 1 k 0 1 ( ( ¸ ¸ , queremos provar que A k+1 = 1 k 1 0 1 ( ( ¸ ¸ + . Ora, A k+1 = 1 k 1 0 1 ( ( ¸ ¸ + = A k . A = 1 k 0 1 ( ( ¸ ¸ . 1 1 0 1 ( ( ¸ ¸ = 1 k 1 0 1 ( ( ¸ ¸ + . Está provado por indução que A n = 1 n 0 1 ( ( ¸ ¸ , ∀n ≥ 1. Conclusão Ao fnalizar 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 fnita. Você aplicará esse método quando quiser garantir que um algoritmo ou sua implementação está correta. 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 fuxograma abaixo termina para quaisquer que sejam os valores dos dados de entrada. 60 Matemática Discreta O algoritmo de Euclides é usado no cálculo do Máximo Divisor Comum entre dois inteiros positivos m e n, conforme fgura seguinte. Mostrar que o procedimento acima termina para quaisquer valores dos dados de entrada, equivale a mostrar 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 fnito 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. 61 Matemática Discreta Por defniçã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 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 fnito p de vezes, com os cálculos fnalizando 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 fnita, 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. 62 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/fbon//seqfb1.htm http://www.upis.br/revistavirtual/Cavalcante_%20Teoria%20dos%20 N%FAmeros%20e%20Criptografa_2005_UPIS.pdf http://www.infowester.com/criptografa.php http://domenico-deri.sites.uol.com.br/exemplos.html http://www.penta.ufrgs.br/gere96/segur/cripto_.htm http://www.ipea.gov.br 63 Matemática Discreta Considerações Finais Ao fnal 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 fnita, empregado quando se deseja verifcar 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. 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 Geral 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: Diego Almeida Coordenação de Produção: Marizete Silva Santos Sumário Apresentação ........................................................................................4 Capítulo 1 - Função: uma ferramenta importante ..............................6 1.1 O que é função? ...........................................................................7 1.2 Domínio e Contradomínio .............................................................7 1.3 Função Injetora .............................................................................9 1.4 Função Sobrejetora ....................................................................10 1.5 Função Bijetora...........................................................................10 1.6 Função Inversa ........................................................................... 11 1.7 Função Composta ......................................................................13 1.8 Sequência ...................................................................................16 Capítulo 2 - Recursão: um método de definição .............................24 2.1 O que é recursão? ......................................................................24 2.2 Recursão ....................................................................................24 Capítulo 3 - Teoremas e Técnicas de Provas ...................................41 3.1 O que é um teorema? .................................................................41 3.2 Estratégias de Provas.................................................................43 Capítulo 4 - Princípio de Indução Finita ...........................................49 Considerações Finais .........................................................................63 como função. Bons estudos! . No primeiro capítulo. recursão. neste terceiro fascículo.Apresentação Caro (a) cursista. 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. estudando com afinco os assuntos e realizando todos os exercícios propostos. alguns temas relevantes em aplicações nas áreas de informática. você estudará as funções. Estudaremos as funções injetoras. bijetoras e a função inversa. No terceiro capítulo. você descobrirá o que é uma definição recursiva ou indutiva. Seja bem-vindo (a) ao terceiro módulo de Matemática Discreta! Ao finalizar a disciplina. Serão apresentados exemplos de sequências e funções definidas recursivamente. muito úteis na resolução de problemas da disciplina. teoremas e técnicas de provas e o princípio de indução matemática. Esperamos que você tenha bom proveito neste terceiro fascículo. No segundo capítulo. Por fim. a função mod e a função hash. abordaremos. Apresentaremos exemplos de funções utilizadas na informática tais como sequências numéricas. você terá oportunidade de conhecer diversas técnicas de provas de proposições matemáticas. objetivando introduzir o conceito de um algoritmo recursivo. sobrejetoras. . além de estimar o tempo necessário para que um computador realize uma determinada tarefa num determinado algoritmo. 6 .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. O conceito de funções é largamente empregado em todos os ramos de atividade. podemos definir sequências e somas. No caso da computação e informática.ipea. por isso é comum os testes de avaliação conter questões versando sobre o assunto. estabelecer relações de causa e efeito.Função: uma ferramenta importante Disponível em http://www.Matemática Discreta Capítulo 1 . processar informações dos mais diferentes tipos. Desta forma. a sua importância tornase clara quando queremos associar a cada elemento de um conjunto um elemento particular de outro conjunto.gov. 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. 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. 8. Chama-se também de imagem de f o conjunto de todas as imagens dos elementos de A. Relações Internacionais. 4. 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. 12 } e conjunto imagem Im(f) = { 6. Exemplo 1. Turismo}. a maioria empregada em construções nas áreas de computação. f(Administração) = 2. Fisioterapia. 7 . Consideremos que f seja uma função que associa um número a cada um dos cursos de uma faculdade. se b é o único elemento de B associado pela função f ao elemento a de A. por exemplo.Matemática Discreta 1. f(Fisioterapia) = 7. Se f(a) = b. A figura acima apresenta uma função cujo domínio é A = { 1. 7 } e contradomínio B ={ 1. 1. se f é uma função de A em B. f(a) = b. O contradomínio é o conjunto dos números reais.6. Se domínio da função f é o conjunto C = {Administração. f(Psicologia) = 5. As seguintes notações são usadas: f: A → B. 4.8.4 e f(Sistemas de Informação) = 2. denotado por Im(f). Direito. 6.2 Domínio e Contradomínio Se f é uma função de A em B.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. Fonoaudiologia. Sistema de Informação. diz-se que b é a imagem de a por f. de modo que esse número represente a demanda (relação candidato/vaga) para cada um dos seus cursos no Vestibular de 2009. Psicologia. Apresentaremos a seguir exemplos de funções. f(Direito) = 7. Podemos escrever. diz-se que f mapeia A em B. 9.0. 9. 7.4 . 12 }. Pois. ABS(-3) = 3. A definição de função inclui função de mais de uma variável. m > 0.35 = 2. Neste caso.35) = 2. Exemplo 9. f : Z x N x {1. Dado um inteiro positivo m. Exemplo 7.7) = 4. Como exemplo.7. É também chamada função mod m. onde o domínio é o conjunto dos números inteiros. dada por f(x. 8 . g(4. Exemplos: INT(7.3) = -1. A função f: S → T associa cada pessoa x ao seu CPF y. Podemos escrever: f(-4. temos: f(2. É uma função de R em R+.4. f(0.9) = 0. y. ABS(4. A função chão f(x) = x associa a cada número real x o maior inteiro menor ou igual a x. domínio e o contradomínio das funções são sempre especificados. denotado por ABS(x) é definido como o maior dos valores entre x e –x. 3.7 e ABS(0) = 0. Podemos ter uma função f: A1xA2xA3 → B. Ambas são funções de R em Z. a função f : N → N definida por f(x) = resto da divisão euclidiana de x por m. Exemplo 6. f(Turismo) 2. que associa a cada terno do produto cartesiano A1xA2xA3 um elemento de B. A imagem de f é constituída de todos os inteiros não negativos.Matemática Discreta f(Relações Internacionais) = 1. f(x) = x2. será denotada por f(x) = xmod m. Exemplo 2.78) = 4. Exemplo 4.85) = 7 INT(-4. A função teto g(x) = x associa a cada real x o menor inteiro maior ou igual a x. converte x em um inteiro deletando a parte fracionária de x. Exemplo 8. 2} → Z. 1) = (-4)3 + 1 = -64 + 1 = -63. Por exemplo. O valor inteiro de x. z) = xy +z . Exemplo 3.4. Se f é uma função de Z para Z que associa a cada inteiro o seu quadrado. denotado por INT(x).78 = 5 e g(-1. Em linguagens de programação.9) = -4. O valor absoluto de um número real x. Seja S o conjunto de todas as pessoas do Recife cadastradas na Receita Federal e T o conjunto de todos os CPF. Considere x um número real. f(Fonoaudiologia) = 1. É uma função de R em Z. Exemplo 5. assim como o contradomínio é conjunto dos números inteiros. 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. Mas a função f(x) = x2. para quaisquer x e y do domínio de f. f(5) = 5mod 5 = 0. A função f: N em N. f(6) = 0. temos que: f(7) = 7mod 5 = 2. obteremos f(2) = f(-2) = 4. 1. e somente se. então f é injetora. pois se n1 ≠ n2 então . A figura acima à direita ilustra uma função não injetora. Exemplo 11. 9 . f(2) = 2. x ≠ y então f(x) ≠ f(y). pois se tomarmos x = -2 e x = 2. Figura 1 Figura 2 O gráfico mostrado na figura acima à esquerda. f(13) = 13mod 5 = 3. f(8) = 3. f(4) = 1. f(11) = 2.3 Função Injetora Uma função f é dita injetora (ou injetiva) se. pois. f(5) = 2. f(10) = 10mod 5 = 0. f(0) = 0. definida em Z. A função f: N em N tal que f(n) = 2n é uma função injetora. para m = 5. De fato. não é injetora. pois existem dois elementos diferentes com a mesma imagem. Exemplo 10. f(1) = 1. f(2) = 2mod 5 = 2. f(3) = 0.Matemática Discreta Por exemplo. Como elementos diferentes do domínio a função tem imagens diferentes. existem diferentes valores de N com a mesma imagem. ilustra uma função definida no conjunto A em B. f(9) = 1. tal que f(n) = nmod 3 é uma função que não é injetora. 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 10 . Como para cada um dos três elementos do contradomínio B faz parte do conjunto imagem de f. c.Matemática Discreta 1. Figura 3 Figura 4 O gráfico da figura acima à esquerda ilustra uma função de A em B. O gráfico acima à direita ilustra uma função que não é sobrejetora. b. f(b) = B. para cada elemento b∈B existe um elemento a∈A tal que f(a) = b. pois existem elementos no conjunto B que não são imagem de nenhum elemento de A. D}. e somente se.5 Função Bijetora Uma função é dita bijetora se ela é injetora e sobrejetora. mas não injetora! 1. Figura 6 O gráfico acima refere-se a uma função f de X = {a. f(c) = C e f(d) = D. com f(a) = A. a função é sobrejetora. Observe que a figura à esquerda é o gráfico de uma função sobrejetora.4 Função Sobrejetora Uma função f de A em B é dita sobrejetora se. C. B. d} em Y = {A. Esta função é representada por f-1. c. D}. B. f(c) = C e f(d) = D. b. Por exemplo. temos f-1(A) = a. 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.6 Função Inversa Seja f uma função bijetora de A em B. Uma das formas de escrever mensagens secretas é associar uma letra do nosso alfabeto a outra letra. f-1(B) = b. A figura abaixo ilustra a função inversa da função f de X = {a. que trata do estudo das mensagens secretas. Nesse caso escrevemos f-1(b) = a. 11 . com f(a) = A. f-1(C) = c e f-1(D) = d. f(b) = B. ou seja. Além disso. Assim. d} em Y = {A. Figura 7 Exemplo 12. 1. a letra A ocupa a posição 0. ele é ao mesmo tempo injetora e sobrejetora. todas as impressões digitais pertencem a não mais que uma pessoa. a letra B a posição 1 e a letra E.Matemática Discreta imagem da função. Por exemplo. Outro exemplo de função bijetora pode ser construído considerando como domínio um grupo de pessoas e como contradomínio o conjunto das impressões digitais dessas pessoas. É impossível que duas pessoas compartilhem exatamente as mesmas impressões digitais. de modo que Z ocupa a posição 25. cada letra do nosso alfabeto (que contém 26 letras) está associada a sua posição no alfabeto. a posição 4. 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. C. bijetora. de modo que a mensagem decifrada seria: 14 O 18 15 S P 14 17 19 O R T 4 E 18 19 S T 0 Á 4 E 12 M 0 A 11 L 19 T 0 A 12 . o receptor usaria a função inversa de f.Matemática Discreta a 0 b 1 c 2 d 3 e 4 f 5 g 6 h 7 i 8 j 9 k 10 l 11 m 12 n 13 o 14 p 15 q 16 r 17 s 18 t 19 u 20 v 21 w 22 x 23 y 24 z 25 Assim. De modo que f-1(17) = (17 . para decodificar. assim por diante. Se quisermos enviar a seguinte mensagem “O SPORT ESTÁ EM ALTA”.3)mod 26 = 18 e. faríamos a seguinte mensagem codificada: 17 R 21 18 V S 17 20 22 R U X 7 H 21 22 V X 3 D 7 H 15 P 3 D 14 O 22 W 3 D Ao receber a mensagem. 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.3)mod 26 = 14mod 26 = 14 f-1(21) = (21 . dada por f-1(p) = (p-3)mod 26. 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. pois pelo menos para um ponto do contradomínio. mas não sobrejetora. conforme pode ser observado na figura 4. Sejam f e g as funções do conjunto dos inteiros no conjunto dos inteiros. não é inversível. 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 (g o f) (x) = g(5x + 2) = -2(5x + 2) + 4 = -10x – 4 + 4 = -10x Exemplo 14. não é inversível. binária e hexadecimal. f(g(x)) g(x) f(x) Exemplo 13. como: (f o g) (x) = f (g(x)) A figura abaixo ilustra o conceito de composição de funções f e g. pois não temos como associar cada elemento do contradomínio com o elemento correspondente no domínio. conforme pode ser observado na figura 3. Analogamente. Neste exemplo. esta associação não existe.7 Função Composta Considere a função g de A em B e a função f de B em C. Isto ocorre porque para alguns pontos do contradomínio. Considere a função f definida no conjunto dos números naturais escritos na base 13 . definidas como: f(x) = 5x + 2 e g(x) = -2x + 4.Matemática Discreta Uma função injetora. definida de A em C. escrita f o g. 1. a função composta de f e g é a composição das funções f e g. teremos dois pontos correspondentes. recordaremos a representação de números nas bases decimal. uma função sobrejetora. mas não injetora. Se quisermos armazenar e recuperar informações de forma eficiente em termos de espaço de armazenamento e de tempo de recuperação. temos f(g(21base 10)) = f(15base 16) = 10101base 2. 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. Assim: para x = 21base 10.. . para x = 10base 10. temos f(g(10)) = f(A) = 1010base 2. de modo que se k1 ≠ k2 se tenha f(k1) ≠ f(k2). 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. dito função de endereçamento. podemos supor que os dados estejam armazenados em uma tabela e usar a chave de identificação (por exemplo. n seja o número de entradas na tabela e que m seja possivelmente muito maior que n. Exemplo 15. n}. k3. A função composta f(g(x)) transforma um número natural escrito na base dez em um número natural na base dois. 2. Assim. etc). 3. como podemos proceder. a matrícula de alunos. sem que isso resulte em um espaço de armazenamento excessivamente grande? Suponha que o conjunto das chaves identificáveis C = {k1. 14 . podemos definir uma função hash: C → {1.. CPF.. .Matemática Discreta decimal por f(x) = xbase 2 e g(x) = xbase 16. . 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).. para x = 200base 10. uma função injetiva. temos f(g(200)) = f(C8) = 11001000base 2. . função de randomização ou função de hashing. km}. calculados pela função hash: Chave k Endereço 365 9 634 6 2178 3 7615 17 730 17 974 6 2065 9 1222 16 3417 1 A função ideal é aquela que gera para cada chave um endereço diferente. k2. isto é. RG. f(i) = i2. 84. não é injetora. acima definida. correndo assim colisões na alocação dos dados. 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. Um deles chama-se endereçamento aberto. hash(7615) = hash(730) = 17. 66. 93} teremos: k 33 44 63 66 84 i 0 0 0 0 0 1 93 0 1 2 hi(k) = (kmod 7 + i)mod 7 hi(33) = (33mod 7 + 0)mod 7 = (5 + 0)mod 7 = 5mod 7 = 5 hi(44) = (44mod 7 + 0)mod 7 = (2 + 0)mod 7 = 2mod 7 = 2 hi(63) = (63mod 7 + 0)mod 7 = (0 + 0)mod 7 = 0mod 7 = 0 hi(66) = (66mod 7 + 0)mod 7 = (3 + 0)mod 7 = 3mod 7 = 3 hi(84) = (84mod 7 + 0)mod 7 = (0 + 0)mod 7 = 0mod 7 = 0 hi(84) = (84mod 7 + 1)mod 7 = (1 + 0)mod 7 = 1mod 7 = 1 hi(93) = (93mod 7 + 0)mod 7 = (2 + 0)mod 7 = 2mod 7 = 2 hi(93) = (93mod 7 + 1)mod 7 = (2 + 1)mod 7 = 3mod 7 = 3 hi(93) = (93mod 7 + 2)mod 7 = (2 + 2)mod 7 = 4mod 7 = 4 Situação ok ok ok ok Colisão ok Colisão Colisão ok Os dados serão alocados nos seguintes endereços: 0 63 1 84 2 44 3 66 4 93 5 33 6 15 . Se tomarmos hi(k) = ((k)mod 7 + i)mod 7 teremos um endereçamento aberto com teste linear. é 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. Observe que hash(365) = hash(2065) = 9. Existem vários métodos de tratamento de colisões. de modo que pode gerar o mesmo endereço para chaves diferentes. Nesse caso.Matemática Discreta A função hash. Exemplo 16. 44. Usase 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. 63. etc. Para armazenar sequencialmente os registros com chaves {33. A4= 11.A. Exemplo 17. 2n-1 são: A1 = 3. uma P. Trata-se de uma Progressão Geométrica (PG) cujo termo inicial é 3 e razão q = 2. A2 = 5. de termo inicial A1 e razão r. a) Os cinco primeiros termos da sequência definida por A(n) = 2 + 3(n-1) são: A1 = 2. n 1 . A imagem de um número natural n é denotada por F(n). Observe que trata-se de uma Progressão Aritmética (PA) cujo termo inicial é 2 e razão r = 3.8 Sequência Uma sequência é uma função definida em um subconjunto dos números naturais com imagens num subconjunto dos números reais. 3 Exemplo 18. A4 = 24. A5 = 48. 2 F(3) = 1 . 4 5 1 .Matemática Discreta 1. F(5) = . A2 = 6. F(2) = F(4) = 1 1 .r b) Os cinco primeiros termos da sequência definida por A(n) = 3. A3= 8. A3 = 12. O termo F(n) é o termo de ordem n ou termo geral da sequência (definição fechada). tem termo geral A(n) = A1 + (n-1). 16 . Considere a sequência cujo termo geral é F(n) = A lista dos termos da sequência é F(1) = 1. A5 = 14. Usamos a notação {F(n)} para descrever uma sequência. Lembre-se que. 997. 101.. 9. 3. f) 1. -2.qn-1. -2. . 9997.. 1/3. Calcular os termos A1. 8. n ≥ 1. 37. 10. 6. 14. ... 5. A2.. Solução: a) A(n) = 24 – 5n . .. 2. A3 e A4 das seguintes sequências {An} cujo termo geral Na.. 1001. 2. 9. 4 d) 3. 200. 17 e) 1. 10001 c) -1. 97. . 50. n ≥ 1 17 . .n d) An = 2n + 1 e) An = n! f) An = 2 + 3(n-1) Solução: a) 1. d) 7. tem termo geral A(n) = A1.. 4.. 6. g) 1.Matemática Discreta Recorde que. 1/5.. 1/9. . . 2. 24 f) 2. 17. 11 Exemplo 20. 27. e) 2. 2. 5. 47. 1/7. 57.. é definido por: a) An = n2 b) An = 1 + 10n c) An = (-1)n... 2. 10. c) 17. b) 400.. 16 b) 11.. 15. 5. -3. 100. Exemplo 19. . h) 1. uma PG de termo inicial A1 e razão q. 9. 4.. Escrever uma definição fechada (ou termo geral) para as seguintes sequências numéricas: a) 19. n ≥ 1 Aprenda Praticando: Exercícios Propostos 1. 2. 3} → {1.3. 2.. (3.c)} g = {(1. c. (3. 2. b. (3. 1.b). (2. 3} → {a.. b. 2. n ≥ 1 d) A(n) = 10n . .2)} p (j) = j2 + 2 m(x) = (x)mod 5 q(j) = 1 se j é ímpar q(j) = 0 se j é par g) r : N → {0.a). 2. 2.1 Agora é com você. 3.a).c)} h = {(1.. 3} d) p : N → N e) m : N → N f) q : N → N f = {(1.. Além disso. 1. (2.n≥1 2n − 1 n(n + 1) g) A(n) = . . Apresentaremos as respostas dos exercícios de números pares. 6} t(x) = (3x)mod 7 18 . {1. 1. 3. Você deve procurar solucioná-los e caso tenha alguma dificuldade discuta com seus colegas nos chats que foram formados. Verificar se cada uma das funções definidas abaixo é injetora. 2.b). 2) .1). (2. 3} → {a. procure orientação dos professores executores e tutores da disciplina nos fóruns de discussão. d} c) h . n ≥ 1 1 . Apresentamos vários exercícios sobre função. n ≥ 1 e) A(n) = (-1)n + 1 . 1} r(j) = 1 se j é ímpar r(j) = 0 se j é par h) t : {0. 6} → {0.n≥1 2 f) A(n) = h) A(n) = 1 + (n . sobrejetora e bijetora: a) f : {1.n≥1 2n−1 c) A(n) = 7 + 10n..Matemática Discreta b) A(n) = 400 ..1)2. c} b) g : {1... Para cada uma das funções bijetora f de R em R. quando existir. 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 19 . Determine quais das seguintes funções de R em R são bijetoras. b) sobrejetora e não injetora.x/2 se n é par e f(x) = (x + 1)/2 se x é impar.Matemática Discreta 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 . Apresente a função inversa. l) f: N → Z tal que f(x) = . c) injetora e sobrejetora. 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. 5. encontre a inversa f-1. d) não injetora e não sobrejetora. a) f(x) = 2x b) f(x) = x3 c) f(x) = (2x + 4)/3 4. g: N → N. 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. 2.1)/2 se x é impar. Sejam f. dados: 53. 377. 93} numa tabela hash de tamanho 7 com tratamento de colisões endereçamento aberto com teste quadrático. As funções a seguir são aplicações de R em R. 1028. a) Hash(x) = (xmod 11 + i)mod 11. Forneça equações que descrevam as funções compostas g o f e f o g para cada item. 796. g(x)= 2x b) f(x) = x . 4. 1. Armazenar sequencialmente os registros com chaves {33. 42. 136. g(x) = x +1 x −1 9. 2. 5. 743. b) Hash(x) = (xmod 17 + i)mod 17 células indexadas de 0 a 16. Qual a composição de f o g e g o f? 7. mostre como os dados seriam inseridos na ordem dada supondo inicialmente células vazias. células indexadas de 0 a 10. 65. 906. 2032. dado por hi(k) = (kmod 7 + i2)mod 7. 6. 13. 281. Sejam f e g as funções do conjunto dos inteiros no conjunto dos inteiros. 509. 3. dados: 714. 631. 10. a) f(x) = 6x3 . As funções a seguir são aplicações de R em R. definidas como: f(x) = 5x + 2 e g(x) = -2x + 4. 10. 44.Matemática Discreta d) g o g e) f o g o f f) g o g o f 6. 84. 20. i = 0. Para cada uma das seguintes funções de Hash. Forneça equações que descrevam as funções compostas g o f e f o g para cada item. 4. g(x) = x 8. 373. 20 . 66. 775. Use tratamento de colisões o endereçamento aberto com teste linear. abaixo. a) f(x) = (x-1)/2. g(x) = 4x2 b) f(x) = x −1 x +1 . 26. (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 x −1 8. x2 + 2 = x + 1. não existe x∈R. De fato. ou seja. 4.5. pois. 3 x +1. f(2) = f(-2) = -5. pois ∆ = b2 . se x ≤ 0. a) g(f(x)) = g( )= 2 f(g(x)) = f(4x2) = x −1 4 2 2 = ( x − 1)2 4 x2 −1 2 x +1 −1 1 x +1 x −1 = b) g(f(x)) = g( )= x +1 x x −1 +1 x −1 x −1 +1 x −1 x +1 = −x f(g(x)) = f( x +1) = x −1 −1 x +1 21 . c) f(x) = 2x + 1 se x∈Z d) f(x) = x2 + 2 se x∈Z 6.4ac = -3. (x+1)/(x2+2) = 1.4) = 1 e que não existe x∈R tal que f(x) = 0. a) f(x) = 3x + 4 é bijetora e a função inversa é f-1(x) = b) f(x) = -3x2 + 7 não é uma função injetora. Observe que f(1. que acarreta x2 .x + 1 = 0. tal que f(x) = 1. Por exemplo. A inversa é f-1(x) = 5 x−4 .Matemática Discreta Respostas dos Exercícios Propostos 1. Esta equação não tem solução real. teríamos. d) f(x) = x5 – 1 é bijetora. tal que f(x) = 10. Se existisse. f(x) = -x2 + 8. c) f(x) = (x+1) / (x2+2) não é sobrejetora. Além disso. não existe x∈R. f(x) = 3x + 2 se x < 0 b) f(x) = x2 se x > 0. e) f(x) = x não é injetora nem sobrejetora. não é sobrejetora em R. a) f(x) = 3x + 1 se x ≥ 0.3) = f(1.1 2. como podem ser utilizadas em aplicações da informática e computação.Matemática Discreta 10. consultando os seguintes livros e sites: 22 . Em particular. conheceu a função mod e a função hash. k 33 44 65 i 0 0 0 1 h(k) = (kmod 7 + i2)mod 7 h(33) = (33mod 7 + 02)mod 7 = (5 + 0)mod 7 = 5 h(44) = (44mod 7 + 02)mod 7 = (2 + 0)mod 7 = 2 h(65) = (65mod 7 + 02)mod 7 = (2 + 0)mod 7 = 2 h(65) = (65mod 7 + 12)mod 7 = (2 + 1)mod 7 = 3 h(66) = (66mod 7 + 02)mod 7 = (3 + 0)mod 7 = 3 h(66) = (66mod 7 + 12)mod 7 = (3 + 1)mod 7 = 4 h(84) = (84mod 7 + 02)mod 7 = (0 + 0)mod 7 = 0 h(93) = (93mod 7 + 02)mod 7 = (2 + 0)mod 7 = 2 h(93) = (93mod 7 + 12)mod 7 = (2 + 1)mod 7 = 3 h(93) = (93mod 7 + 22)mod 7 = (2 + 4)mod 7 = 6 Situação ok ok Colisão ok Colisão ok ok Colisão Colisão ok 66 0 1 84 93 0 0 1 2 Os dados serão alocados nos seguintes endereços: 0 84 1 2 44 3 65 4 66 5 33 6 93 Conclusão No primeiro capítulo deste fascículo. Saiba Mais Você poderá aprender muito mais sobre funções. você aprendeu sobre as funções. que serão empregadas em aplicações da disciplina Estrutura de Dados. L. Marc Lars. A.htm 23 . Matemática Discreta: uma introdução. São Paulo: Pioneira Thomson Learning. LIPSON.br/revistavirtual/Cavalcante_%20Teoria%20dos%20 N%FAmeros%20e%20Criptografia_2005_UPIS. Porto Alegre: Bookman.uol. a chave de decodificação pode ser obtida da chave de decodificação. No sistema criptográfico com chave pública. Seimour.sites.Matemática Discreta GERSTING.br/gere96/segur/cripto_. usamos uma chave de codificação. Rivest. Tradução de Alfredo Alves de Farias. como por exemplo. Shamir e L. 2003.br/exemplos. o receptor pode decodificá-la usando uma chave de decodificação. Adleman usa a função mod e alguns conceitos da teoria dos números inteiros.upis.com. Se você tem interesse no assunto. O sistema criptográfico com chave pública inventado por R.penta. Tradução Valéria de Magalhães Iorio. 2004. SCHEINERMAN. Teoria e Problemas de Matemática Discreta. Daí. 2004. Edward R.html http://www. a informação é codificada e enviada ao receptor. Fundamentos Matemáticos para a Ciência da Computação.pdf http://www. LIPSCHUTZ. Ao recebê-la. informações de dados financeiros pela internet.infowester. Judith L. Nesse processo. Rio de Janeiro: LTC.com/criptografia. Orientações de Estudos O exemplo 12 deste capítulo versou sobre processos de transmissão de informações de forma segura.php http://domenico-deri.ufrgs. leia os livros acima indicados que tratam do assunto de uma forma muito simples e visite os seguintes sites: http://www. 2 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. onde os outros casos do item que está sendo definido são dados em termos dos casos anteriores. Essa é uma figura construída por recorrência! Faremos agora uma definição de recursão. onde alguns casos simples do item que está sendo definido são dados explicitamente e. maior triângulo equilátero branco de lado L1 tem em cada um de seus lados. e assim sucessivamente. 24 . 2 do triângulo anterior. Por sua vez. Assim. cada 2 De modo que a figura mostra uma sucessão de triângulos equiláteros de lados Ln = L2 .Recursão: um método de definição 2. b) Um passo indutivo ou recursivo. uma definição recursiva é constituída de duas partes: a) Um passo inicial.Matemática Discreta Capítulo 2 . Ln−1 .1 O que é recursão? A figura acima é um triângulo equilátero. vértices de um triângulo equilátero de lado L2 = triângulo equilátero de lado L2. tem em cada um dos seus lados. Isto é. vértices de triângulos equiláteros de lados L3 = L1 . onde o lado de cada triângulo é metade do lado 2 2. No seu interior. o item é definido por meio de uma regra que permite calcular qualquer caso do item em função do item ou dos itens anteriores. 24. A(1) A(1) = 3 A(2) = 2 . A(2) A(2) = 2 . 12. A(n-1). 11. A primeira parte é do passo inicial. é definida recursivamente por: Passo inicial: A(1) = 3 Passo Recursivo: A(n) = 2 . 14. onde é feita de forma recorrente o calcule dos demais itens em termos dos itens anteriores. 6 = 12 A(4) = 2 . é 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: 25 . A(3) A(3) = 2 . . 5. 3 = 6 A(3) = 2 . 24 = 48 Exemplo 2. A sequência 3. algoritmos. A sequência 2.Matemática Discreta Como podemos fazer uso de uma definição recursiva? Podemos usar recursão para definir funções ou operações. Lembre-se: Toda definição recursiva é constituída por duas partes. 12 = 24 A(5) = 2 . a partir daí. Uma sequência é definida recursivamente. 8. 6.. onde serão fornecidos os dados iniciais do item que se define. conjuntos e sequências.. A(4) A(4) = 2 . explicitando-se seu primeiro valor (ou seus primeiros valores) e. A segunda parte é o passo recursivo. .. para n ≥ 2 O cálculo do 5º termo se faz assim: A(5) = 2 . Exemplo 1. definindo-se outros valores na sequência em termos dos valores iniciais. O cálculo do MDC de x = 72 e y = 20 se processa dessa maneira: 26 . xmod y) caso contrário. Calcule recursivamente F(6). F(2) = 1 Passo recursivo: F(n)= F(n-1) + F(n-2). 1. A sequência de Fibonacci é definida recursivamente por: Passo inicial: F(1) = 1. 34. 2. 8 . n ≥ 3 é constituída dos termos 1.x) se x < y MDC(x. 3. . 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 F(5) = 3 + 2 = 5 F(6) = 5 +3 = 8 Exemplo 4.Matemática Discreta 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. y) = MDC(y.. a função MDC calcula o máximo divisor comum de dois inteiros positivos. y) = y se x ≥ y e xmod y = 0 MDC(x. 5.13.. 21. pode ser definida assim: MDC(x. Por exemplo. y) = MDC(y. Uma função pode ser definida por recursividade. enquanto o passo recursivo aparece na linha “multiplica: = m + multiplica (m.2) multiplica(5. qual o valor de saída para m = 5 e n = 4? multiplica(5.3) = 5 + multiplica(5. conforme exemplo seguinte: {Função recursiva para multiplicação de dois inteiros. n – 1)” onde aparece a função chamando ela mesma. um módulo recursivo. Efetua a multiplicação por somas sucessivas. 8) = MDC(8.3) multiplica(5. n –1). 20) = MDC(20.Matemática Discreta MDC (72. um módulo recursivo segue o algoritmo seguinte: se <condição de parada é satisfeita> então Resolva senão Divida o problema num caso mais simples utilizando recursão.4) = 5 + 15 = 20 27 .1) = 5 multiplica(5. precisamos identificar dois elementos: o passo recursivo e a condição de parada.1) multiplica(5. 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: inteiro): inteiro {Executa multiplicação utilizando somas sucessivas. No exemplo citado.4) = 5 + multiplica(5. Para alguns tipos de problemas um módulo recursivo possibilita soluções mais simples e “naturais”. 12) = MDC (12. De um modo geral. a condição de parada é satisfeita quando n = 1. Recursão em programação refere-se a um procedimento ou função que chama a si mesmo.2) = 5 = 5 = 10 multiplica(5. 4) = 4 Exemplo 5.3) = 5 + 10 = 15 multiplica(5.} função multiplica (m. fim {multiplica} Observação: Para definir um módulo recursivo. No exemplo acima.2) = 5 + multiplica(5. de modo que: 10 . .462 = 0. 997. 276 e 300. 253. Logo. Isto é. 97. n2 + n . com n ≥ 1. A(n-1) = 10(10n-1 – 3) = 10n – 30 = (10n – 3) . A(n) = 10. podemos escrever A(n-1) = 10n-1 -7. Definimos a sequência T por: T(1) = 1 28 . b) sequência T(n) de números triangulares: T(1) = 1 n=1 T(2) = 3 n=2 T(3) = 6 n=3 T(4) = 10 n=4 c) 231 é um número triangular? d) Quais os números triangulares entre 200 e 300? a) A sequência 7. d) 231. 997. A definição recursiva é T(1) = 1. 9997. temos que n = . A(1) = 7 é a definição recursiva da sequência. logo T(n) = T(n-1) + n . Forneça uma definição recursiva para cada uma das seguintes sequências: a) 7. Assim. A função chão f(x) = x associa a cada número real x o maior inteiro menor ou igual a x. T(n) = T(n-1) + n. n2 + n c) Uma fórmula fechada para T(n) é T(n) = para n ≥ 1 (Prove). 9997. tem termo geral A(n) = 10n – 3. devemos encontrar n2 + n n tal que 231 = . 2 2 T(21) = 231. n ≥ 2... T(3) = T(2) + 3. 2 Assim. para 231 seja um número triangular. Assim.27 = A(n) – 27. .. b) Observe que T(1) = 1. 97. T(2) = T(1) + 2.Matemática Discreta Exemplo 6. Exemplo 7. para n ≥ 2..A(n-1) + 27 para n ≥ 2. Resolvendo a 2 −1 ± 1 + 1848 −1 ± 43 = equação. 7. T ( 2/2 ) = 2 . } Simule a saída para a entrada L= [2. . 8. T ( 18/2 ) = 2 . T(1) T(1) = 1 T(2) = 2 . 8] ORD([2. T ( 36/2 ) = 2 . -3. T ( 4/2 ) = 2 . 5. imprima a lista. 4. 7. A lista está ordenada. 4. 5] e j = 6 Solução: ORD([2.Matemática Discreta T(n) = 2 . L(j)] onde j é o comprimento da lista: Lista ORD (lista L. 4. 4.. 8]. T( 73/2 ) = 2 . T(36) = T(36) = 2 . L(2). 8]. 16 = 32 T(73) = 2 . int J) if (J == 1) { return L. 8]. 4. 4. 5. T ( n/2 ) para n ≥ 2. Considere o seguinte algoritmo recursivo em C que ordena os elementos de uma lista L= [L(1). 4. 5. 32 = 64 Exemplo 8. 4 = 8 T(18) = 2 . -3. T (4) T(4) = 2 . 4. 5. 3) = [2. -3. T(2) T(2) = 2 . 5) = [2. 7. 8] ORD([2. L(3). 6) = [2. 8. 7. 5. 7. Vamos calcular recursivamente T(73). 5. 8] 29 . 7. -3. -3. 7. 4) = [2. 7. 2 = 4 T(9) = 2 . -3. J-1). -3. T(18) = T(18) = 2 . T(9) T(9) = 2 . 1 = 2 T(4) = 2 .. -3. T(73) = 2 . 8] ORD([2. } 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. -3. 7. T ( 9/2 ) = 2 . 5]. . 5. 4. 8 = 16 T(36) = 2 . 2. Vamos calcular F(5). -3. 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. 8]. 5. 7. 5. 8]. -3. 5. 7. 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. 4. 5. 8] ORD([2. Você percebeu que F(n) é a soma de todos os números inteiros positivos menores ou iguais a n? Assim. 8] Exemplo 9. F(n) = ∑ i = 1+ 2 + 3 + 4 + 5 + . i =1 n 30 .. 2. 2) = [-3.. + n. 4. 7.Matemática Discreta ORD([2. 4. 4. 7. 1) = [-3. Forneça uma definição recursiva para: a) a progressão geométrica com termo inicial 7 e razão 3. c) A(1) = 2. A(n) = 3. A. Apresentaremos a seguir resposta dos exercícios de numeração par. caso persistam dúvidas. Calcule recursivamente o sexto termo de cada uma das sequências definidas abaixo: a) A(1) = 1. 31 .(n − 1) c) B(1) = 1. A(n) = A(n-1) + 9. D(2) = 5. D(n) = (n-1). Procure orientação dos professores executores e tutores da disciplina nos fóruns de discussão. A(n) = -2. n ≥ 2. 3. 1.D(n-2). discuta com seus colegas nos chats que foram formados. b) A(1) = 1. B(n) = B(n-1) + n2. para n ≥ 3. A(n) = [A(n-1)]2. para n ≥ 2. para n ≥ 2.10n.Matemática Discreta Aprenda Praticando: Exercícios Propostos 2. A(n) = A(n-1) + 1 . f) A(1)= 3. A(n) = A(n-1) + 10. A(n) = A(n-1) + 2. n ≥ 2. e) A(1) = 3. n ≥ 2. P(n) = n2.A(n-1) + 7. n ≥ 2. d) A(1) = 1. b) A(1) = 1. para n ≥ 2. calcular o quinto termo das sequências dadas: a) A(1) = 10. 2. A(n) = 1 .1 Chegou a sua vez! Apresentamos vários exercícios sobre recursão. para n ≥ 2. d) A(1) = 91. Você deve tentar solucioná-los e caso tenha alguma dificuldade.A(n-1). f) D(1) = 3.P(n-1) + (n-1). A(n) = 3. Nos exercícios seguintes.A(n-1). n ≥ 2. para n ≥ 2. n e) P(1) = 1.D(n-1) + (n-2). n ≥ 2. .. 2a .b. Descubra os termos que estão faltando. f) a sequência 5. h) a sequência a. Uma quantia de 500 unidades monetárias foi investida em uma conta remunerada a uma taxa de juro composto anual de 10%.1 com n > 0 k) a sequência A(n) = n2 com n > 0 l) a sequência A(n) = n2 + n + 1 m) a sequência 1. 1. 144. 92. 4a + 3b.. Descreva a definição recursiva para P(n). 2.. .. } Qual o valor de saída para a entrada n = 6? 32 . 4a . 3a .. 17. . c) o fatorial n!.. n) a divisão de dois inteiros positivos. n ≥ 1. 6.. . 992. 1 + 1 + 1 .. 3a + 2b.2b . 1 + 1 .. 4. 1232.Matemática Discreta b) a progressão aritmética com termo inicial -12 e razão 5.3b. . .... e) o MDC de dois números naturais a e b. 9992. ... . . a < b.½.. 1 + 1 + 1 + 1 . . para um valor de entrada especificado? int F(int n) { if (n == 1) return 1 else return n + 2*F(n-1). a quantia na conta no início do n-ésimo ano.. 2a + b. d) o produto de dois números inteiros positivos... o) a sequência 1 . -1. 2000 é uma subsequência finita obtida da sequência de Fibonacci. 768. Que valor é computado pelo seguinte algoritmo. 13. 0! 0! 1! 0! 1! 2! 0! 1! 2! 3! p) a sequência 2.. i) a sequência a. A sequência de números 16. 5.. ¼ . 9. -1. 304.... 1 . g) a sequência 4. j) a sequência An = 3n . Definimos uma sequência T por: a) T(1)= 1 b) T(n) = 2 . 2 Yn Essa relação produz uma sequência de valores tais que pode ser usado para aproximar 2 com qualquer grau de precisão. onde n ≥ 0. 10. para um valor de entrada especificado? int FIB (int n) { if (n == 0) return 0 else if (n == 1) return 1 else return = FIB(n-1) + FIB(n-2). FACT (n+1) = (n+1) . 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. Considere a relação de recorrência dada por: Y0 = 1. Que valor é computado pelo seguinte algoritmo. Que valor é computado pelo seguinte algoritmo. Definimos a sequência FACT da seguinte forma: FACT (0) = 1. para n ≥ 0. A função teto g(x) = x associa a cada real x o menor inteiro maior ou igual a x. Calcule recursivamente T(85). 33 . int b) { if a = 0 return b else return MDC (bmod a. Escreva os seis primeiros termos de FACT. para um valor de entrada especificado? int MDC( int a. FACT (n). T ( n/2 ) para n ≥ 2. 11.Matemática Discreta 7. Yn+1 = 1 2 Yn + . } Qual o valor de saída para n = 6? 9. -5. . Considere a sequência definida recursivamente por: F(1) = 1 e F(n) = 1 .5)? E Q(5861. b) Observe o numerador de cada um dos termos da parte (a). 5. L(2). Que valor é computado pelo seguinte algoritmo para um valor de entrada especificado? int Q(int a.2)? E para Q(5. 34 . } 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). int J) { if (j == 1) return L //A lista está ordenada. 0..Matemática Discreta 12. Imprima a lista. F (n − 1) + 1 a) Ache os valores dos seis primeiros termos dessa sequência. int b) { if a < b return 0 else return Q(a-b.. -2] e j = 7. int B) { if (A == 0) or (B == 0) return A + B else return MAX(A-1. . 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. L(3).7)? 14. 9. } Qual o valor de saída para Q(15. para n > 1. b) + 1. Que sequência formam? 13. 7. Considere o seguinte algoritmo recursivo: int MAX (int A. B-1) + 1. L(j)] onde j é o comprimento da lista: Lista ORD(lista L. 99. int COMB(int n. b) sequência P(n) de números pentagonais: . } Calcule o valor de saída para a entrada de n = 6 e p = 3. 9999. Resp. n=1 P(1) = 1 n=2 P(2) = 5 n=3 P(3) = 12 n=4 P(4) = 22 n=5 P(5) = 5 35 . 999. . p)... Considere o seguinte algoritmo recursivo.. Definição recursiva n=1 P(n) = 2 P(1) = 2 n=2 P(n) = 4 n=3 P(n) = 7 n=4 P(n) = 11 P(n) = P(n-1) + n. O que calcula COMB para quaisquer inteiros não negativos n e p? 17. int p) { if (n == p) or (p == 0 ) return 1 else return COMB(n-1.. As figuras abaixo mostram quantos pedaços obtemos com n cortes numa pizza: Dê uma definição recursiva para o número de pedaços P(n) em função do número de cortes 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. p-1) + COMB(n-1.Matemática Discreta 16. n ≥ 2 b) S(1) = 1.3) e F(15. n ≥ 2. S(2) = 1.S(n-1) + n.7). m+3) + m Fim Se Fim Calcular F(2. 21. 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). Ache uma definição fechada (fórmula) para as seguintes sequências definidas recursivamente por: Resultados importantes que podem ser usados: (a1 + an )n 2 a1 (q n − 1) A soma dos termos de uma PG: Sn = q −1 A soma dos termos de uma PA: Sn = a) S(1) = 1. F(12). n ≥ 2 2 20. S(n) = 3. S(n) = 2 – S(n-1). S(n)= S (n − 1) + S (n − 2) .3). m: inteiro): inteiro Se n < m então Retorne -3 Senão Retorne F(n-m. c) S(1) = 1.S(n-1) + 1 . F(5). n ≥ 2 d) S(1) = 0. Considere o seguinte algoritmo recursivo: Função F(n: inteiro. 36 .Matemática Discreta 19. F(5. S(n) = 3. Matemática Discreta Respostas dos Exercícios Propostos 2. P(0) = 500 P(n) = 1. a) 11 b) 243 c) 4.967.1 2.294. 37 .296 d) 9999991 e) -64 f) 523 4.P(n-1).1. n ≥ 1. 5. 12) + 1 MAX(6. 1 . para n ≥ 1 é uma definição fechada para a sequência 9. 7) + 1 MAX(1.8) + 1 MAX(2. 120.. S(n) = 10. 9) = 9 MAX(4. 13) = 13 A função MAX retorna o maior valor entre A e B.. a) 1. 999. 8 10. 16. 6. a) S(n) = 10n – 1. 6) + 1 MAX(0. 10) = MAX(3. Uma definição recursiva é: S(1) = 1. 3. 24. 8 2 3 5 8 13 b) Formas a sequência de Fibonacci. 9) = MAX(2. 11) + 1 MAX(5.7) = 7 MAX(2. 12) = MAX(5. 11) = 11 MAX(6. 2. 14. 12) = 12 MAX(7. 11) = MAX(4.10) + 1 MAX(4. 187 8. 720 12. .7) = MAX(0. para n≥ 2 b) Observe que: P(1) = 1 38 .Matemática Discreta 6.6) = 6 MAX(1. 13) = MAX(6. 9999. 99. 8) = 8 MAX(3. 2.S(n-1) + 9.9) + 1 MAX(3. 10) = 10 MAX(5. 1. a) 20 b) O algoritmo retorna C 18. 8) = MAX(1. MAX(7. pois a sequência 1.n (3n − 1)n 3n 2 − n = = 1 e razão 3... sequências. de termo inicial (1 + 3n − 2).3 = 1 + 3n . a definição recursiva é: P(1) = 1. P(n) = P(n-1) + 3n -2 . 7. 20.. é uma PA de razão 3 e termo inicial 1.Matemática Discreta 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 . 2 2 2 para n ≥ 1. 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 . Ele é usado na definição de funções. 13. 4. P(n) = P(n-1) + 3n – 2. de modo que an = 1 + (n-1).. 10. algoritmos 39 . P(n) = 1 + 4 + 7 + 10 + 13 + .A. logo P(n) = .2 Assim. (3n-2).F(4) + 7 = 2(12) + 7 = 31 F(6) = 2.. .F(5) + 7 = 62 + 7 = 69 Conclusão Você conheceu no segundo capítulo deste fascículo o método da recursão... Observe que P(n) é a soma dos termos de uma P..3 = 3n . F(4) = 12 F(5) = 2. Tradução Valéria de Magalhães Iorio. Matemática Discreta: uma introdução. LIPSCHUTZ. São Paulo: Pioneira Thomson Learning. SCHEINERMAN. Saiba Mais Você poderá aprender muito mais sobre recursão. 2004. Tradução de Alfredo Alves de Farias. Aprendeu como formular um algoritmo recursivo em aplicações da informática e computação. 2003. Rio de Janeiro: LTC. Teoria e Problemas de Matemática Discreta. Porto Alegre: Bookman. 40 . 2004. Seimour. LIPSON. Fundamentos Matemáticos para a Ciência da Computação. Judith L. consultando os seguintes livros e sites: GERSTING.Matemática Discreta e diversos outros procedimentos computacionais. Edward R. Marc Lars. Por exemplo. se x e y são ambos pares então. O teorema afirma que. 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”. 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. Definimos um teorema como qualquer afirmação declarativa sobre matemática. Afirmações cuja veracidade não se pode garantir são chamadas de conjecturas.1 O que é um teorema? Você lembra o Teorema de Pitágoras. x + y é um número par. se x e y não são pares então x + y é par. A sentença não exclui a possibilidade de x + y ser par quando x ou y não for par. A única circunstância em que a afirmação é falsa é quando P é verdadeira (x e y pares) e Q é falsa (x + y ímpar).Teoremas e Técnicas de Provas 3. 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. Recorde que P ↔ Q é equivalente a (P → Q) ∧ (Q → P). Na afirmação “se P então Q”. Na verdade. para a qual existe uma prova. 41 . considere a afirmação “Se x e y são números pares então x + y é também um número par”.Matemática Discreta Capítulo 3 . Podemos escrever teoremas também na forma P ↔ Q onde se lê: “P se e somente se Q”. P é chamado de hipótese e Q é a conclusão. Aqui. ela pode ser provada verdadeira quando mostramos que é verdadeira para cada um dos números inteiros entre 2 e 13. vimos que quando queremos refutar uma conjectura.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. y = 4) F (x = 3. um contra-exemplo é suficiente. Claramente trata-se de uma proposição falsa. c) O quadrado de um inteiro primo não é primo. Suponha uma conjectura P → Q e queremos mostrar que é falsa. É 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”. y = 5) Conclusão Q V (x + y = 6) F (x + y = 7) V (x + y = 8) F (x + y = 7) P→Q possível impossível possível possível Exemplo 1. y = 5) F (x = 2. d) A soma de um inteiro par com um ímpar é par. No caso da asserção: “Se um inteiro entre 2 e 13 é divisível por 4 então também é divisível por 2”. ou seja. No exemplo acima. Nesse caso. Exemplo 2. y = 4) V (x = 2.y é um inteiro par. em geral. Basta escolher x = 2. Se a afirmação P → Q é verdadeira temos o seguinte: Hipótese P V (x = 2. Se x é par e y é ímpar então x + y é ímpar. Mas para provar uma afirmação. uma situação em que P é verdadeira e Q é falsa. 42 . Se x é um inteiro ímpar e y é um inteiro par então x. A única exceção dessa situação ocorre quando uma afirmação é feita sobre um conjunto finito. muitos exemplos não provam a suposição. No caso da afirmação “Se x é um número primo então x é ímpar”. Devemos encontrar um contra-exemplo. Se x um inteiro ímpar então x2 é impar. b) O quadrado de um inteiro ímpar é ímpar. Se x é um número primo então x2 não é primo. podemos verificar se a proposição é verdadeira para todos os elementos do conjunto. 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. m + 2 . n = 2 . 2) . Como 2 . Como x + y = 2 . Prova: Assumimos que x é um inteiro par. Prova: Suponha que x e y são inteiros pares (Hipótese). k. Exemplo 3. k).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. (n+2) + 1. Prova: Seja x um inteiro divisível por 6.2. (2 .m. k = m. existem inteiros m e n tais que x = 2. Então existe um inteiro k tal que x = 6 . Se x é um inteiro par então y = x + 5 é inteiro ímpar. temos que y = 2 . “Se um inteiro é divisível por 6 então ele também é divisível por 3”. Então existe um inteiro n tal que x = 2 . podemos escrever x = (3 . Pondo na forma P → Q temos: Se x é um número inteiro então x + x2 é par.m e y = 2. temos que x = 3. Isto significa que x e y são ambos divisíveis por 2. x + y é par (Conclusão). k é um inteiro e escrevendo 2 . y é um número ímpar. n. onde m é um inteiro. A soma de um inteiro com o seu quadrado é um número par.Matemática Discreta 3. 43 .c. (m + n). com m inteiro. Logo. Exemplo 4. 2.n. Pondo 6 = 3 . Abordaremos algumas delas. m + 1. concluímos que existe um inteiro c = m + n tal que x + y = 2. Consequentemente.2 Estratégias de Provas Diversas formas podem ser usadas para provar uma asserção do tipo “Se P então Q”. Provar: “Se x e y são inteiros pares então x + y é par”. Logo. Como y = x + 5 então y = 2 . Exemplo 5. Exemplo 6. Logo. Portanto x + y é divisível por 2. n + 5 = 2n + 4 + 1 = 2 . k = 3 . x é divisível por 3. 3. Pondo n + 2 = m. n + 1 = 4n2 + 6. Consequentemente x + x2 é par. n e x2 = (2 . Se x é par. 44 . 3.m. Se x é ímpar. temos que x + x2 = 2m. ¬ Q → ¬ P: Se x2 não é ímpar então x não é ímpar. Formularemos contra-positiva ¬ Q → ¬ P das seguintes proposições P → Q: a) P → Q: Se x é ímpar. De modo que x + x2 = 2. Assim. A afirmação ¬ Q → ¬ P é chamada de contra-positiva da afirmação P → Q. n2 = 2(n + 2n2).2. n + 4 . P → Q: Se x é inteiro ímpar então 3x + 5 um inteiro é par. n2.n + 2 = 2(2n2 + 3n + 1). Exemplo 7. Uma delas foi que P → Q é logicamente equivalente a ¬Q → ¬P. de modo que x + x2 = 2 . A prova indireta é também chamada de contra-positiva. Consequentemente x + x2 é par. Pondo m = n + 2n2. x + x2 = 2n + 1 +(2n + 1)2 = 2. Use a prova indireta para provar a seguinte proposição P → Q: Se x é um número par.Matemática Discreta Prova: Seja x um número inteiro. A tabela seguinte mostra isso! P V V F F Q V F V F P→Q V F V V ¬Q F V F V ¬P F F V V ¬Q→¬P V F V V Assim. então x2 é ímpar. Equivalentemente podemos escrever: Se x2 é par então x é par.n + 1 + 4n2 + 4. Exemplo 8. então x + 3 é ímpar. 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. b) Se n é um inteiro ímpar então 3n + 5 é um inteiro par. onde m é o inteiro 2n2 + 3n + 1.n + 1 para algum inteiro n. então x = 2 .2 Prova Indireta Você deve lembrar que no fascículo 1 provamos algumas equivalências entre proposições. n)2 = 4 . x = 2. suponhamos que x é um número par e que x + 3 é par. se o quadrado de um inteiro é par então x é par.m para inteiros n e m..2.Matemática Discreta A contra-positiva ¬ Q → ¬ P é “Se x +3 não é ímpar. Aqui. Assim x + 3 é impar. Prove pela contra-positiva que. x = 2.n e x + 3 = 2. x é um número par é a hipótese P e a conclusão Q é x + 3 é ímpar.m – 4 + 1 = 2. Então n2 = (2x + 1)2 = 4x2 + 4x + 1 = 2(2x2 + 2x) + 1 = 2. Exemplo 11.m – 3 = 2. admitimos P e não Q e mostraremos que isso implica algo falso. n2 é ímpar. . Suponha que o conjunto dos números primos seja finito. Assim. Veja tabela-verdade abaixo: P V V F F Q V F V F P→Q V F V V ¬Q F V F V P ∧ ¬Q F V F F F F F F F (P ∧ ¬Q) → Falso V F V V Exemplo 10. Se x é um número par. A contra-positiva de “n2 par → n par ” é “n ímpar → n2 ímpar”. 45 . que (P ∧ ¬Q) → Falso. Exemplo 9. onde m = n -2 é inteiro. Então existem n primos. O conjunto dos números primos é infinito. Assim. pn. Assim. Consequentemente x = 2. porém. então x não é par”.3 Prova por contradição (Redução ao absurdo) Suponhamos que queremos provar P → Q. se x + 3 é par. Então.(m-2) + 1. Isto é. para provarmos P → Q. Desse modo existe n∈Z tal que x + 3 = 2n. Assim. a saber: p1. por um lado x = 2. suponha que x + 3 é par. o que é uma contradição. Inicialmente. Logo x é ímpar. x = 2n – 3 = 2n – 4 + 1 = 2(n-2) + 1.n e por outro x = 2. então x + 3 é ímpar.m + 1. onde p = 2x2 + 2x é inteiro. p3. . então x é ímpar. isto é x é par e x é ímpar. Isto é. Assuma que n = 2x + 1 com x inteiro.. Sabemos.p + 1. Admitimos P e não Q. p2. 3. pn (deixa resto 1). p2.y é impar. a) O produto de quaisquer três inteiros consecutivos é par. Logo. Logo. b) Se um número inteiro é primo então o seu quadrado é primo.. 2. c) O produto de um inteiro pelo seu quadrado é par. O número x não é divisível por nenhum dos primos p1. Forneça uma prova direta das seguintes afirmações: a) A soma de dois inteiros ímpares é par. pn + 1. p3. é verdadeira a proposição de que existem infinitos primos. g) Se x é um inteiro positivo então x2 + x + 41 é primo. p3.1 1.. .Matemática Discreta Considere o número x = p1.. c) O produto de dois inteiros consecutivos é par. f) Se a e b são inteiros tais que a divide b e b divide a então a = b. e) Se x é um inteiro primo então x + 4 é primo. d) A soma de um inteiro com o seu cubo é par. x é mais um primo além dos n primos existente inicialmente. Prove por contradição que: a) A soma de dois inteiros negativos é um inteiro negativo. 3. b) A soma de quaisquer três inteiros consecutivos é par. Aprenda Praticando: Exercícios Propostos 3. . O que é uma contradição. Forneça um contra-exemplo para: a) Se x é um inteiro par e y é um inteiro ímpar então o produto x. 46 . 4. p2. Dê uma prova direta para as seguintes proposições ou apresente um contra-exemplo. d) O quadrado de um inteiro par é divisível por 4. . . b) A soma de um inteiro ímpar e um par é ímpar.. Prove ou dê um contra-exemplo: a) Se x e y são números irracionais então o produto x. destacamos a prova direta.Matemática Discreta b) Se x é um número real tal que x > 0 então c) Se a soma de dois números primos é primo então um dos primos deve ser 2. prova por contradição e aprendeu a fornecer um contra-exemplo de uma proposição falsa. 8. Prove ou dê um contra-exemplo: Se x e y são inteiros primos então x. 5. c) Se n é um inteiro positivo. então n é par. então n2 – 79n + 1601 é primo.y + 1 é primo 1 x >0 Conclusão Ao final deste terceiro capitulo. Dentre elas.y é irracional. b) prova indireta c) prova por contradição. b) Se n é um inteiro positivo qualquer. então x2 é positivo. 6. e) Se n é um inteiro tal que 3. usando: a) prova direta b) prova por contradição c) prova pela contra-positiva. a prova pela contra-positiva. Prove que se n é um inteiro ímpar então n3 + 5 é um inteiro par. 7. 47 . usando: a) prova direta. d) Se x é diferente de zero. você aprendeu sobre técnicas de provas de teoremas. então 2n + 1 é primo. Prove que o quadrado de um inteiro par é um inteiro par.n + 2 é par. 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. 48 Matemática Discreta Capítulo 4 - Princípio de Indução Finita O Princípio de Indução Finita é uma técnica frequentemente 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 “1 + 2 + 3 + 4 + ...+ n = n(n + 1) ” 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 os resultados encontrados são sempre números primos? 49 Matemática Discreta 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? 50 a peça vizinha também cairá. ∀k ≥ 1 então. Como é na prática o principio de indução finita? Alguns exemplos mostrarão isso. a proposição P(n) é verdadeira. Sempre que uma peça de dominó cair. Se provarmos que: a) P(1) é verdadeira. que pode ser enunciado assim: Seja P(n) uma proposição que queremos provar que é verdadeira para todo número natural n ≥ 1. Então você pode concluir que todas as peças de dominó cairão. b) Se P(k) verdadeira implica que P(k+1) é verdadeira. Se você tem uma longa fila de dominós em pé e você puder assegurar que: 1. pode ser feita pelo método que chamamos de Princípio de Indução Finita. relativa aos números naturais. 2.Matemática Discreta A demonstração de que uma propriedade P. 51 . Para melhor entender o princípio de indução finita vamos utilizar a metáfora do dominó. é verdadeira para todo numero natural n ≥ 1. para todo inteiro n ≥ 1. O primeiro dominó cairá quando se aplica uma força suficiente na peça do dominó. a fórmula vale para todo n ≥ 1. isto é. que 1 + 2 + 3 + 4 + .... Suponha que P(n) seja verdadeira para n = k.. isto é. devemos mostrar que P(n) é verdadeira para n = k + 1... Devemos mostrar que P(k+1) é também verdadeira.(1 + 1) ⇒1= ⇒ 1 = 1. devemos mostrar que: P(k+1): 1 + 3 + 5 + ...Matemática Discreta Exemplo 3.. Parte 1. Queremos provar que a proposição P(n) seguinte é verdadeira para todo numero natural n ≥ 1 P(n): 1 + 3 + 5 + 7 . 2 52 . + k] + (k+1) = (k + 1)(k + 2) . Exemplo 4..1) = n. isto é.. Vamos provar que P(I) é verdadeira. ∀n ≥ 1. P(k) verdadeira significa que 1 + 3 + 5 + . 2 Parte 1. 2 2 Parte 2... + 2k-1 + 2(k+1) -1 = [1 + 3 + 5 + . + k = Queremos provar que P(k+1) é verdadeira. + (2n . + (2k-1) = k2. isto é: 1 = 12 1=1 Parte 2.. + 2k -1] + 2(k+1) -1 = k2 + 2k +1 = (Hipótese) (k+1)2 Logo. 2 Como 1 + 2 + 3 + 4 + . Devemos provar que P(1) é verdadeira.. que 1 + 2 + 3 + 4 + ... + k + (k+1) = [1 + 2 + 3 + 4 + .. pelo Princípio de Indução Finita. + 2k-1 + 2(k+1) -1 = (k+1)2 Como 1 + 3 + 5 + . + k + (k+1) = k (k + 1) .(2) 1.. De fato. Supondo que P(n) é verdadeira para n = k. Provar que 1 + 2 + 3 + 4 + . 1= 1..+ n = n(n + 1) . 1 = 3. Ou seja.m = 3(22k + m) múltiplo de 3. 22. 2k ≥ 2(k+1) = (hipótese) 2k + 2 ≥ k + 2 53 . 22. Para n = 0. ∀n∈N Parte 1. Exemplo 5. P(n): 2n ≥ n+1.1 = 22k . De fato. pelo Princípio de Indução Finita.m para algum inteiro m. isto é. Devemos provar que P(1) é verdadeira. ∀n ≥ 1. que 2k+1 ≥ k+2 sempre que 2k ≥ k +1 Ora. Parte 2. 22k + 22k -1 = 3. Quero provar que P(n) é verdadeira para n = k+1. tem-se que: 20 ≥ 0+1 1 ≥ 1 verdadeiro. n∈N é verdadeira. Suponha que P(n) seja verdadeira para n = k. a fórmula vale para todo n ≥ 1. Parte 1.1 – 1 é divisível por 3 (múltiplo de 3).1 = 22k . 22 – 1 = 22k . Devemos mostrar que P(n) é verdadeira para n = k+1 sempre que P(n) é verdadeira para n = k. Como 22(k+1) . que para n = 1.1 é múltiplo de 3. Parte 2. a fórmula vale para todo n ≥ 1. 4 . 2k+1 = 2. Mostre que a proposição P(n): 22n .1 é divisível por 3. Logo.1 – 1 = 22 – 1 = 4 – 1 = 3 (múltiplo de 3). pelo Princípio de Indução Finita. Exemplo 6. 2k Então 22k .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. 22k + 3. isto é.1 = 3.1 é múltiplo de 3. 3 + 22k . quero provar que 22(k+1) . Ou seja. que 2 .1 = 22k+2 . Prove por indução matemática que 23n – 1 é divisível por 7.1 = 5.41 .2 . S(3) = 3.S(3) .1 2 3k +1 + 3 3k +1 + 3 − 2 3k +1 + 1 . temos que S(1) = 2 2 k Parte 2. S(2) = 3.S(k) – 1 = 3. queremos provar 2 3k+1 + 1 S(k+1) = . pelo Princípio de Indução Finita. a) Escreva os cinco primeiros termos de S. ∀n ≥ 1.1 = 3. S(4) = 3.14 .Matemática Discreta Logo. Seja S(n) o termo geral de uma sequência tal que S(1) = 2 e S(n) = 3*S(n-1) .1 para n > 1.1 – 1 = 8 – 1 = 7 é divisível por 7. pelo passo recursivo temos que S(k+1) = 3. É claro que para n = 1. S(5) = 3. Para n = 1.S(4) . Parte 1. Parte 1. que existe inteiro m tal que 23k – 1 = 7m. Suponha que para um inteiro k ≥ 1.5 .S(1) . 2 Ora.1 = 3. 23k – 1 seja divisível por 7.1 = 3. isto é.1 = 41.1 = 3.S(2) . 54 .1 = 122 3n + 1 2 3n + 1 b) Queremos provar que S(n) = 2 1 3 +1 4 = = 2. Queremos provar que 23(k+1) – 1 é divisível por 7. b) Mostre por indução que S(n) = Solução: a) S(1)= 2. ou seja. 23. −1 = = 2 2 2 Exemplo 8. a fórmula vale para todo n ≥1 Exemplo 7. que existe inteiro p tal que 23(k+1) – 1 = 3p. Suponha que S(k) = 3 + 1 . n∈N.1 = 14. Parte 2. 3 = k que +1 . 23 – 1 = 23k. a 2 2 Ora. Para n = 1 temos que F(1) = fórmula está correta. podemos escrever 23(k+1) – 1 = 23k.1 = (23k. Parte 2. . pela definição recursiva temos que F(k+1) = F(k) + k+1. com p = 23k + m. Assim. 23(k+1) – 1 = 23k + 3 – 1 = 23k. 12. F(2) = F(1) + 2 = 3 + 2 = 5. logo. 7) + (23k – 1) Como 23k.n≥1 2 Queremos provar que a fórmula dá os termos da sequência 3. queremos provar que 2 k2 + k + 4 2 +k+1 55 . 7 + 7m = 7(23k + m) = 7p. b) F(n) = n2 + n + 4 . 7 é divisível por 7 e 23k – 1 é divisível por 7 por hipótese.n≥1 2 n2 + n + 4 .8 . F(n) = F(n-1) + n. 8. Exemplo 9. Uma sequência F(n) é definida recursivamente assim: F(1) = 3.Matemática Discreta De fato. F(5) = F(4) + 5 = 12 + 5 = 17. podemos escrever: F(k+1) = (k + 1)2 + (k + 1) + 4 . então 23(k+1) – 1 é divisível por 7... a) Quais os cinco primeiros termos de F? b) Use indução para provar que F(n) = a) F(1) = 3. Suponha que F(k) = F(k+1) = 12 + 1 + 4 6 = = 3. 17. Parte 1. tendo em vista ser soma de dois números divisíveis por 7. para n>1. 2 k2 + k + 4 . 5. F(3) = F(2) + 3 = 5 + 3 = 8 F(4) = F(3) + 4 = 8 + 4 = 12. . + (4n . 2 Está completa a prova por indução..3) = n(2n ... esse é o meu computador! Aprenda Praticando: Exercícios Propostos 4.1) 56 . Nossa. Nos exercícios seguintes. Pedrinho! Por que você está descalço com um tempo desses? É que o armazém do meu pai está em balanço. use a indução matemática para demonstrar que os resultados abaixo indicados são válidos para qualquer inteiro positivo n. E como não dá pra contar tudo só com os dedos das mãos....1 1. (n ≥ 1) a) 2 + 6 + 10 + .Matemática Discreta = k 2 + k + 4 + 2k + 2 2 k 2 + 2k +1+ k +1+ 4 + 2 (k +1)2 + (k +1) + 4 + . + 2n = n(n + 1) c) 1 + 5 + 9 + .. + (4n .. Eu venho descalço..2) = 2n2 b) 2 + 4 + 6 + . + n(n +1) n(n +1)(n + 2) = 2 6 e) 4 + 10 + 16 + ..6n é divisível por 7 d) 25n + 1 + 5n + 2 é divisível por 27 4. S(n) = 2*S(n-1) + 1 para n > 1.. escreva sob a forma de somatório.. + 5n = g) 12 + 22 + 32 + ... + 1 = n 1. Prove por meio de indução matemática que as sentenças seguintes são verdadeiras para todo inteiro n ≥ 1. + n3 = 4 n(2n −1)(2n +1) 12 + 32 + 52 + .3 3. + (6n .. a) 32n + 7 é divisível por 8 b) 7n .2n é divisível por 5 c) 13n . + (2n ... + n2 = h) i) j) k) l) n(n +1)(2n +1) 6 n2 (n +1)2 13 + 23 + 33 + ..Matemática Discreta d) 1 + 3 + 6 + ..2) = n(3n + 1) f) 5 + 10 + 15 + .1! + 2.1)2 = 3 n(n +1)(2n + 7) 1. Mostre por indução que S(n) = 2n – 1.2! + 3. a) Escreva os cinco primeiros termos de S 3n + 1 b) Mostre por indução que S(n) = 2 57 .5 (2n −1).1 2.3 3. Considere a sequência S(n) definida recursivamente por: S(1) = 1.. o primeiro membro de cada uma das igualdades..3! + . No exercício anterior. Seja S(n) o termo geral de uma sequência tal que: S(1) = 2 e S(n) = 3*S(n-1) – 1 para n > 1.n! = (n+1)! .(2n +1) 2n +1 5n(n +1) 2 m) 1. 5.. + n....4 + 3. para n ≥ 1.3 + 2.2 2.. + 1 = 5.. 3.4 n +1 n(n +1) n 1 + 1 + 1 + .7 1. + n(n+2) = 6 1 + 1 + 1 + ..5 + .. (2k – 1) + 1 = 2k+1 + 2 – 1 = 2k+1 + 1. De fato S(1) = 21 – 1 = 1. D(n) = 5. Queremos provar que S(k+1) = 2k+1 – 1. Isto é. 58 . b) Mostre por indução que D(n) = 2n-1 + 3n-1 para n ≥ 1. para n > 2. para n ≥ 1. provaremos inicialmente que a fórmula é válida para n = 1.D(n-2).S(k) + 1 = 2. 7. suponha que a fórmula é válida para um inteiro k ≥ 11. n Respostas dos Exercícios Propostos 4.Matemática Discreta 1 1 6.D(n-1) . Para provar que S(n) = 2n –1.6. S(k) = 2k – 1. Agora. D(2) = 5.1 2. a) c) e) g) i) k) m) ∑ (4i − 2) i =1 ∑ (4i − 3) i =1 ∑ (6i − 2) i =1 n n n ∑i2 i =1 ∑ (2i − 1)2 i =1 n n ∑ i(i + 1) i =1 ∑ i.(i !) i =1 n n 1 4. A sequência D(n) é definida assim: D(1) = 2. a) Escreva os cinco primeiros termos da sequência. Descobrir e provar por indução uma fórmula para An = 0 1 com n ≥ 1. pelo passo recursivo. Ora. temos que S(k+1) = 2. 1 k + 1 . Por exemplo. ∀n ≥ 1. A = 1 1 0 k 1 1 1 = . 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. queremos saber se o procedimento descrito pelo fluxograma abaixo termina para quaisquer que sejam os valores dos dados de entrada. n . 1 0 1 0 1 Está provado por indução que An = 0 n . 1 Ora. 1 A3 = 0 2 1 1 1 3 1 . 1 Conclusão Ao finalizar este fascículo. Ak+1 = 1 0 k + 1 = Ak. Saiba Mais O Princípio de Indução Finita é usado também na correção de algoritmos. ∀n ≥ 1 1 1 Conjectura: An = 0 Prova por indução: Para n = 1. 0 1 = 0 1 . = 0 1 0 1 1 0 2 1 . Você aplicará esse método quando quiser garantir que um algoritmo ou sua implementação está correta.. 59 . 0 1 1 Suponha Ak = 0 k .. 6. A1 = 1 1 . queremos provar que Ak+1 = 1 1 0 k + 1 .Matemática Discreta 1 1 1 1 . A1 = = 0 1 0 1 A2 = 1 1 1 1 1 . r = 0. Mostrar que o procedimento acima termina para quaisquer valores dos dados de entrada. Faremos a prova por indução sobre o valor de y. 3 e 4 são executados uma única vez e o cálculo termina no passo 4. Assim. então após o passo 2. Parte 1. os passos 2. e mostraremos que ela é verdadeira para y = k.Matemática Discreta O algoritmo de Euclides é usado no cálculo do Máximo Divisor Comum entre dois inteiros positivos m e n. conforme figura seguinte. equivale a mostrar que “Se no passo 2 do procedimento os valores de x e y são inteiros. então os passos 2. tal que 1 ≤ y < k. com os cálculos terminando no passo 4”. 60 . 3 e 4 serão executados apenas um número finito de vezes. Parte 2. Se y = 1. Suponhamos que a proposição é verdadeira para qualquer x > 0 e qualquer y. Matemática Discreta: uma introdução. Assim. São Paulo: Pioneira Thomson Learning. Fundamentos Matemáticos para a Ciência da Computação. 2004. os passos 2. Seimour. Caso você queira conhecer mais sobre o princípio de indução finita. Se r = 0. e a execução volta ao passo 2. Marc Lars. Concluímos então que o algoritmo termina para quaisquer valores das entradas. Judith L. LIPSCHUTZ. 61 . LIPSON.Matemática Discreta Por definição de resto da divisão de números inteiros positivos. com os cálculos finalizando no passo 4. teremos depois da execução do passo 2. SCHEINERMAN. 2003. consulte as seguintes obras. Edward R. De modo que. Teoria e Problemas de Matemática Discreta. Tradução de Alfredo Alves de Farias. teremos x = k e y = r. Se r > 0. com a execução dos passos 3 e 4. 2004. pela hipótese de indução. ao todo teremos p + 1 execuções para y = k. a execução termina. numa única vez. 0 ≤ r < k. 3 e 4 serão executados um número finito p de vezes. Tradução Valéria de Magalhães Iorio. notadamente em provas de correção de algoritmos. Rio de Janeiro: LTC. GERSTING. Porto Alegre: Bookman. htm http://www.gov. Matemática Discreta: Uma Introdução. Tópicos de Matemática Discreta. 523p. H.interaula. GERSTING. Teoria Intuitiva dos Conjuntos. M. Porto Alegre: Editora Sagra Luzzatto.infowester. 2004. E.pdf http://www.ufrgs. MENEZES.. 511p. 266p. L. 654p..html http://www.122p ROSEN. S.penta.br/revistavirtual/Cavalcante_%20Teoria%20dos%20 N%FAmeros%20e%20Criptografia_2005_UPIS. New York: WCB/McGraw-Hill. Porto Alegre: Bookman.Matemática Discreta Referências ABE. 2 ed.ipea. R. PINTO.com. Rio de Janeiro: LTC 1993. J.htm http://www. LIPSON.. 2004. 4 ED.com/matweb/alegria/fibon//seqfib1.com/criptografia. São Paulo: Makron. B. Departamento de Matemática: Universidade de Aveiro. Matemática Discreta para Computação e Informática. 512p. SCHEINERMAN. M. 1999.upis. Fundamentos Matemáticos para a Ciências da Computação.sites. S.br/gere96/segur/cripto_. Teoria e Problemas de Matemática Discreta.php http://domenico-deri. 199.uol. LIPSCHUTZ. http://www. 2003. 272p. 3 ed. J L.br/exemplos. São Paulo: Thomson. K.br 62 . Discrete Mathematics and its Applications. P. J. 1999. Em todos esses assuntos. como os teoremas podem ser provados usando algumas técnicas de provas e conheceu o princípio de indução finita.Matemática Discreta Considerações Finais Ao final desse fascículo você aprendeu sobre as funções. foram abordados exemplos relacionados às áreas de Informática e Computação. o que é recursividade. empregado quando se deseja verificar a veracidade de proposições relativas aos números inteiros. 63 . Espero que você utilize esses métodos matemáticos na solução de problemas de outras disciplinas do curso.