136
Fundamentos Matemáticos para Computação Recursão Raquel de Souza Francisco Bravo e-mail: [email protected] 29 de novembro de 2016 Raquel de Souza Francisco Bravo

Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Recursão

Raquel de Souza Francisco Bravo e-mail: [email protected]

29 de novembro de 2016

Raquel de Souza Francisco Bravo

Page 2: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Problemas combinatórios são frequentemente resolvidos por processos que reduzem o problema original a vários problemas menores.

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 3: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Problemas combinatórios são frequentemente resolvidos por processos que reduzem o problema original a vários problemas menores. Se o problema consiste de uma série de problemas de contagem de um parâmetro n e existe suficiente regularidade nos problemas, o método de relacões de recorrência pode ser útil.

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 4: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Objetivo:

§  Apresentar a técnica recursiva que permite reduzir um problema envolvendo n objetos a outro problema semelhante de tamanho menor, que por sua vez é possível reduzir a outro problema do mesmo tipo, e assim reduzindo a problemas com menos elementos até obter um problema de simples resolução.

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 5: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Objetivo:

§  Apresentar a técnica recursiva que permite reduzir um problema envolvendo n objetos a outro problema semelhante de tamanho menor, que por sua vez é possível reduzir a outro problema do mesmo tipo, e assim reduzindo a problemas com menos elementos até obter um problema de simples resolução.

Importância:

§  Muitos problemas de contagem são modelados e resolvidos usando relações de recorrência.

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 6: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Ex: Considere a sequência: S = (1, 2, 22, 23, ··· , 2n,···)

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 7: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Ex: Considere a sequência: S = (1, 2, 22, 23, ··· , 2n,···) A sequência pelo seu termo geral é 2n, n = 0,1,2,···

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 8: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Ex: Considere a sequência: S = (1, 2, 22, 23, ··· , 2n,···) A sequência pelo seu termo geral é 2n, n = 0,1,2,··· Outra alternativa: Expressar o n-ésimo número em termos do (n-1)-ésimo, juntamente com o primeiro elemento da sequência, que é 20=1.

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 9: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Ex: Considere a sequência: S = (1, 2, 22, 23, ··· , 2n,···) A sequência pelo seu termo geral é 2n, n = 0,1,2,··· Outra alternativa: Expressar o n-ésimo número em termos do (n-1)-ésimo, juntamente com o primeiro elemento da sequência, que é 20=1.

2 . an-1 , se n > 0 1 , se n = 0 an =

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 10: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Dada uma sequência de números a0, a1, · · · , an. Uma relação de recorrência é uma equação que relaciona um número an a alguns dos seus predecessores na sequência, para qualquer n.

Definição

Raquel de Souza Francisco Bravo

Page 11: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Dada uma sequência de números a0, a1, · · · , an. Uma relação de recorrência é uma equação que relaciona um número an a alguns dos seus predecessores na sequência, para qualquer n. Uma relação de recorrência também é chamada uma equação de diferenças.

Definição

Raquel de Souza Francisco Bravo

Page 12: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Dada uma sequência de números a0, a1, · · · , an. Uma relação de recorrência é uma equação que relaciona um número an a alguns dos seus predecessores na sequência, para qualquer n. Uma relação de recorrência também é chamada uma equação de diferenças. Além disso, para a relação de recorrência ser calculada precisamos conhecer um (ou vários) elementos da sequência chamadas: condições iniciais ou condições de fronteira.

Definição

Raquel de Souza Francisco Bravo

Page 13: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Dada uma sequência de números a0, a1, · · · , an. Uma relação de recorrência é uma equação que relaciona um número an a alguns dos seus predecessores na sequência, para qualquer n. Uma relação de recorrência também é chamada uma equação de diferenças. Além disso, para a relação de recorrência ser calculada precisamos conhecer um (ou vários) elementos da sequência chamadas: condições iniciais ou condições de fronteira. No exemplo anterior, a condição de fronteira é

Definição

Raquel de Souza Francisco Bravo

Page 14: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Dada uma sequência de números a0, a1, · · · , an. Uma relação de recorrência é uma equação que relaciona um número an a alguns dos seus predecessores na sequência, para qualquer n. Uma relação de recorrência também é chamada uma equação de diferenças. Além disso, para a relação de recorrência ser calculada precisamos conhecer um (ou vários) elementos da sequência chamadas: condições iniciais ou condições de fronteira. No exemplo anterior, a condição de fronteira é a0 = 1.

Definição

Raquel de Souza Francisco Bravo

Page 15: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

O problema foi proposto por Leonardo de Pisa, conhecido como Fibonacci, em um livro publicado em 1202. Tal problema foi formulado da seguinte forma:

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 16: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

O problema foi proposto por Leonardo de Pisa, conhecido como Fibonacci, em um livro publicado em 1202. Tal problema foi formulado da seguinte forma: •  Determine o número de pares de coelhos ao final de 12 meses sob as seguintes condições:

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 17: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

O problema foi proposto por Leonardo de Pisa, conhecido como Fibonacci, em um livro publicado em 1202. Tal problema foi formulado da seguinte forma: •  Determine o número de pares de coelhos ao final de 12 meses sob as seguintes condições: (a)  Inicialmente tem-se um único par de coelhos, um macho e uma fêmea recém nascidos;

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 18: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

O problema foi proposto por Leonardo de Pisa, conhecido como Fibonacci, em um livro publicado em 1202. Tal problema foi formulado da seguinte forma: •  Determine o número de pares de coelhos ao final de 12 meses sob as seguintes condições: (a)  Inicialmente tem-se um único par de coelhos, um macho e uma fêmea recém nascidos; (b)  Todo mês cada par de coelhos com pelo menos 2 meses produz um novo par de coelhos de sexo oposto.

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 19: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

O problema foi proposto por Leonardo de Pisa, conhecido como Fibonacci, em um livro publicado em 1202. Tal problema foi formulado da seguinte forma: •  Determine o número de pares de coelhos ao final de 12 meses sob as seguintes condições: (a)  Inicialmente tem-se um único par de coelhos, um macho e uma fêmea recém nascidos; (b)  Todo mês cada par de coelhos com pelo menos 2 meses produz um novo par de coelhos de sexo oposto. (c)  Nenhum coelho morre durante este processo.

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 20: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 21: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 22: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 23: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 24: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 25: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 26: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 27: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 28: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p3

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 29: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 30: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 31: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 32: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 33: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

Relação de Fibonacci

Raquel de Souza Francisco Bravo

po p5

Page 34: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

p3 po

po

po

po p1

po p2 p1

po p2 p3 p4 p1

Relação de Fibonacci

Raquel de Souza Francisco Bravo

p5

Page 35: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 36: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 37: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 38: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4 p1

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 39: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4 p1 p7

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 40: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 41: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4 p1 p7

Mês

1 2 3 4 5

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 42: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4 p1 p7

Mês

1 2 3 4 5

F0=1 p0

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 43: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3

po p5 p3 p2 p6

Mês

1 2 3 4 5

F0=1 p0

F1=1 p0

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

p1

p4 p1 p7

Relação de Fibonacci

Raquel de Souza Francisco Bravo

p4

Page 44: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4 p1 p7

Mês

1 2 3 4 5

F0=1 p0

F1=1 p0

F2=F1 + 1

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

p1 p0

Raquel de Souza Francisco Bravo

Relação de Fibonacci

Page 45: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4 p1 p7

Mês

1 2 3 4 5

F0=1 p0

F1=1 p0

F2=F1 + F0

p1 p0

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 46: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4 p1 p7

Mês

1 2 3 4 5

F0=1 p0

F1=1 p0

F2=F1 + F0

F3=F2 + 1

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

p1 p0

p2

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 47: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4 p1 p7

Mês

1 2 3 4 5

F0=1 p0

F1=1 p0

F2=F1 + F0

F3=F2 + F1

p2

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

p1 p0

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 48: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4 p1 p7

Mês

1 2 3 4 5

F0=1 p0

F1=1 p0

F2=F1 + F0

F3=F2 + F1

F4=F3 + 1 + 1

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

p1 p0

p2

p3 p4

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 49: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4 p1 p7

Mês

1 2 3 4 5

F0=1 p0

F1=1 p0

F2=F1 + F0

F3=F2 + F1

F4=F3 + F2

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

p1 p0

p2

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 50: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

po

po

po p1

po p2 p1

po p2 p3 p4 p1

po p5 p3 p2 p6 p4 p1 p7

Mês

1 2 3 4 5

F0=1 p0

F1=1 p0

F2=F1 + F0

F3=F2 + F1

F4=F3 + F2

F5=F4 + F3

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

p1 p0

p2

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 51: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

A relação de recorrência é:

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

Fn = Fn-1 + Fn-2 , n > 1

1 , n=0, 1

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 52: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

A relação de recorrência é:

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

Fn = Fn-1 + Fn-2 , n > 1

1 , n=0, 1

condições iniciais

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 53: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

A relação de recorrência é:

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

Fn = Fn-1 + Fn-2 , n > 1

1 , n=0, 1

condições iniciais

Sequência de Fibonacci: 1,1, 2, 3, 5, 8, 13,···

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 54: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

A relação de recorrência é:

Fn: número de pares de coelhos no final do mês n (n ∈ N). F0: número de pares de coelhos no início do processo.

Fn = Fn-1 + Fn-2 , n > 1

1 , n=0, 1

condições iniciais

Sequência de Fibonacci: 1,1, 2, 3, 5, 8, 13,···

Obs.: Nosso interesse é obter a solução de uma relação de recorrência para obter uma expressão geral para o n-ésimo número da sequência.

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 55: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 56: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 57: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 58: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 59: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2 ü  F3 = F2 + F1 = 3

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 60: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2 ü  F3 = F2 + F1 = 3 ü  F4 = F3 + F2 = 5

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 61: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2 ü  F3 = F2 + F1 = 3 ü  F4 = F3 + F2 = 5 ü  F5 = F4 + F3 = 8

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 62: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2 ü  F3 = F2 + F1 = 3 ü  F4 = F3 + F2 = 5 ü  F5 = F4 + F3 = 8 ü  F6 = F5 + F4 = 13

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 63: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2 ü  F3 = F2 + F1 = 3 ü  F4 = F3 + F2 = 5 ü  F5 = F4 + F3 = 8 ü  F6 = F5 + F4 = 13 ü  F7 = F6 + F5 = 21

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 64: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2 ü  F3 = F2 + F1 = 3 ü  F4 = F3 + F2 = 5 ü  F5 = F4 + F3 = 8 ü  F6 = F5 + F4 = 13 ü  F7 = F6 + F5 = 21 ü  F8 = F7 + F6 = 34

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 65: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2 ü  F3 = F2 + F1 = 3 ü  F4 = F3 + F2 = 5 ü  F5 = F4 + F3 = 8 ü  F6 = F5 + F4 = 13 ü  F7 = F6 + F5 = 21 ü  F8 = F7 + F6 = 34 ü  F9 = F8 + F7 = 55

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 66: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2 ü  F3 = F2 + F1 = 3 ü  F4 = F3 + F2 = 5 ü  F5 = F4 + F3 = 8 ü  F6 = F5 + F4 = 13 ü  F7 = F6 + F5 = 21 ü  F8 = F7 + F6 = 34 ü  F9 = F8 + F7 = 55 ü  F10 = F9 + F8 = 89

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 67: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2 ü  F3 = F2 + F1 = 3 ü  F4 = F3 + F2 = 5 ü  F5 = F4 + F3 = 8 ü  F6 = F5 + F4 = 13 ü  F7 = F6 + F5 = 21 ü  F8 = F7 + F6 = 34 ü  F9 = F8 + F7 = 55 ü  F10 = F9 + F8 = 89 ü  F11 = F10 + F9 = 144

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 68: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2 ü  F3 = F2 + F1 = 3 ü  F4 = F3 + F2 = 5 ü  F5 = F4 + F3 = 8 ü  F6 = F5 + F4 = 13 ü  F7 = F6 + F5 = 21 ü  F8 = F7 + F6 = 34 ü  F9 = F8 + F7 = 55 ü  F10 = F9 + F8 = 89 ü  F11 = F10 + F9 = 144 ü  F12 = F11 + F10 = 233

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 69: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Cálculo de F12: usamos Fk = Fk-1 + Fk-2, para k = 2,3,…,12 ü  F0=1 ü  F1=1 ü  F2= F1 + F0 = 2 ü  F3 = F2 + F1 = 3 ü  F4 = F3 + F2 = 5 ü  F5 = F4 + F3 = 8 ü  F6 = F5 + F4 = 13 ü  F7 = F6 + F5 = 21 ü  F8 = F7 + F6 = 34 ü  F9 = F8 + F7 = 55 ü  F10 = F9 + F8 = 89 ü  F11 = F10 + F9 = 144 ü  F12 = F11 + F10 = 233

Relação de Fibonacci

Raquel de Souza Francisco Bravo

Page 70: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

.

.

.

1 2 3

n

Situação Inicial

Origem Destino Trabalho

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 71: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Determine o menor número de movimentos que são necessários para passar n discos colocados em um eixo, em ordem crescente de tamanho (de cima para baixo), para um outro eixo. Devem ser respeitadas as seguintes regras:

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 72: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Determine o menor número de movimentos que são necessários para passar n discos colocados em um eixo, em ordem crescente de tamanho (de cima para baixo), para um outro eixo. Devem ser respeitadas as seguintes regras: (a)  Só é permitido mover um disco do topo para um outro eixo.

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 73: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Determine o menor número de movimentos que são necessários para passar n discos colocados em um eixo, em ordem crescente de tamanho (de cima para baixo), para um outro eixo. Devem ser respeitadas as seguintes regras: (a)  Só é permitido mover um disco do topo para um outro eixo. (b)  Não é permitido colocar um disco maior em cima de um menor.

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 74: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Determine o menor número de movimentos que são necessários para passar n discos colocados em um eixo, em ordem crescente de tamanho (de cima para baixo), para um outro eixo. Devem ser respeitadas as seguintes regras: (a)  Só é permitido mover um disco do topo para um outro eixo. (b)  Não é permitido colocar um disco maior em cima de um menor.

Tk: número mínimo de movimentos necessários para passar k discos de um eixo a outro nas condições do problema (k = 1,2,...,k)

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 75: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

.

.

.

1 2 3

n

Origem Destino Trabalho

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 76: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

.

.

.

1 2 3

Origem Destino Trabalho

n

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 77: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

.

.

.

Origem Destino Trabalho

1 2 3

n

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 78: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Origem Destino Trabalho

1 2 3

.

.

.

n

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 79: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

1 2 3

Situação Final

1 2 3

Origem Destino Trabalho

Origem Destino Trabalho

Situação Inicial

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 80: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Origem Destino Trabalho

Situação Inicial

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 81: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Origem Destino Trabalho

Movimento 1

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 82: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Origem Destino Trabalho

Movimento 2

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 83: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Origem Destino Trabalho

Movimento 3

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 84: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Origem Destino Trabalho

Movimento 4

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 85: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Origem Destino Trabalho

Movimento 5

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 86: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Origem Destino Trabalho

Movimento 6

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 87: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Origem Destino Trabalho

Movimento 7

Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 88: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Esquema da solução do Problema da Torre de Hanói

2 3

n

Trabalho

.

.

.

1

Origem Destino

Raquel de Souza Francisco Bravo

Page 89: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

1 2 3

.

.

.

n

Origem Destino Trabalho

Esquema da solução do Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 90: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

2 3

n . . .

1

Origem Destino Trabalho

Esquema da solução do Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 91: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

2 3

n

Trabalho

.

.

.

1

Origem Destino

Esquema da solução do Problema da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 92: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Algoritmo Hanoi(n, de ORIG para DEST usando TRAB) Início

Se n=1 então ORIG → DEST Senão Início

Hanoi(n-1, de ORIG para TRAB usando DEST); ORIG → DEST; Hanoi(n-1, DE TRAB PARA DEST USANDO ORIG) Fim; Fim.

Raquel de Souza Francisco Bravo

Algoritmo da Torre de Hanói

Page 93: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Algoritmo Hanoi(n, de ORIG para DEST usando TRAB) Início

Se n=1 então ORIG → DEST Senão Início

Hanoi(n-1, de ORIG para TRAB usando DEST); ORIG → DEST; Hanoi(n-1, DE TRAB PARA DEST USANDO ORIG) Fim; Fim.

(1)

Algoritmo da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 94: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Algoritmo Hanoi(n, de ORIG para DEST usando TRAB) Início

Se n=1 então ORIG → DEST Senão Início

Hanoi(n-1, de ORIG para TRAB usando DEST); ORIG → DEST; Hanoi(n-1, DE TRAB PARA DEST USANDO ORIG) Fim; Fim.

Tn-1

(1)

Algoritmo da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 95: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Algoritmo Hanoi(n, de ORIG para DEST usando TRAB) Início

Se n=1 então ORIG → DEST Senão Início

Hanoi(n-1, de ORIG para TRAB usando DEST); ORIG → DEST; Hanoi(n-1, DE TRAB PARA DEST USANDO ORIG) Fim; Fim.

Tn-1

(1)

(1)

Algoritmo da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 96: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Algoritmo Hanoi(n, de ORIG para DEST usando TRAB) Início

Se n=1 então ORIG → DEST Senão Início

Hanoi(n-1, de ORIG para TRAB usando DEST); ORIG → DEST; Hanoi(n-1, DE TRAB PARA DEST USANDO ORIG) Fim; Fim.

Tn-1

(1)

(1) Tn-1

Algoritmo da Torre de Hanói

Raquel de Souza Francisco Bravo

Page 97: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

A relação de recorrência para o problema da Torre de Hanói é:

Tn = 2Tn-1 + 1 , n > 1

1 , n= 1

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 98: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

A relação de recorrência para o problema da Torre de Hanói é:

Tn = 2Tn-1 + 1 , n > 1

1 , n= 1

Dado histórico: §  Este problema foi proposto em 1883 pelo matemático francês

Edouard Lucas. O número de discos era 64.

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 99: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

A relação de recorrência para o problema da Torre de Hanói é:

Tn = 2Tn-1 + 1 , n > 1

1 , n= 1

Dado histórico: §  Este problema foi proposto em 1883 pelo matemático francês

Edouard Lucas. O número de discos era 64. Observação: §  É possível calcular T64 usando a relação de recorrência dada

acima?

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 100: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

A relação de recorrência para o problema da Torre de Hanói é:

Tn = 2Tn-1 + 1 , n > 1

1 , n= 1

Dado histórico: §  Este problema foi proposto em 1883 pelo matemático francês

Edouard Lucas. O número de discos era 64. Observação: §  É possível calcular T64 usando a relação de recorrência dada

acima? Seria preciso calcular T2, T3, ..., T64, o que seria bem demorado.

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 101: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

A relação de recorrência para o problema da Torre de Hanói é:

Tn = 2Tn-1 + 1 , n > 1

1 , n= 1

Fórmula “fechada”

Dado histórico: §  Este problema foi proposto em 1883 pelo matemático francês

Edouard Lucas. O número de discos era 64. Observação: §  É possível calcular T64 usando a relação de recorrência dada

acima? Seria preciso calcular T2, T3, ..., T64, o que seria bem demorado.

Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 102: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Existem diferentes métodos para resolver relações de recorrência:

Método de Resolução de Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 103: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Existem diferentes métodos para resolver relações de recorrência:

ü Método de suposição e verificação;

Método de Resolução de Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 104: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Existem diferentes métodos para resolver relações de recorrência:

ü Método de suposição e verificação; ü Método da iteração ou da substituição;

Método de Resolução de Relações de Recorrência

Raquel de Souza Francisco Bravo

Page 105: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 106: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Duas etapas:

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 107: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Duas etapas: ü  Arriscar um palpite para a forma da solução;

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 108: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Duas etapas: ü  Arriscar um palpite para a forma da solução; ü Usar indução para determinar as constantes e mostrar que

a solução funciona.

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 109: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Duas etapas: ü  Arriscar um palpite para a forma da solução; ü Usar indução para determinar as constantes e mostrar que

a solução funciona.

Consideremos a relação de recorrência para o Problema da Torre de Hanói:

Tn = 2Tn-1 + 1 , n > 1

1 , n= 1

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 110: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Vamos tabular Tn para alguns valores de n:

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 111: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

n Tn 1 1 = 21 – 1

Vamos tabular Tn para alguns valores de n:

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 112: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

n Tn 1 1 = 21 – 1 2 3 = 22 – 1

Vamos tabular Tn para alguns valores de n:

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 113: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

n Tn 1 1 = 21 – 1 2 3 = 22 – 1 3 7 = 23 – 1

Vamos tabular Tn para alguns valores de n:

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 114: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

n Tn 1 1 = 21 – 1 2 3 = 22 – 1 3 7 = 23 – 1 4 15 = 24 – 1

Vamos tabular Tn para alguns valores de n:

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 115: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

n Tn 1 1 = 21 – 1 2 3 = 22 – 1 3 7 = 23 – 1 4 15 = 24 – 1 5 31 = 25 – 1

Vamos tabular Tn para alguns valores de n:

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 116: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

n Tn 1 1 = 21 – 1 2 3 = 22 – 1 3 7 = 23 – 1 4 15 = 24 – 1 5 31 = 25 – 1

Vamos tabular Tn para alguns valores de n:

Suposição: Tn = 2n-1

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 117: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

n Tn 1 1 = 21 – 1 2 3 = 22 – 1 3 7 = 23 – 1 4 15 = 24 – 1 5 31 = 25 – 1

Vamos tabular Tn para alguns valores de n:

Suposição: Tn = 2n-1 T64 = 264-1

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 118: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

ü Nem sempre temos intuição suficiente para dar um palpite

correto;

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 119: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

ü Nem sempre temos intuição suficiente para dar um palpite

correto; ü O método da iteração permite que se reconheça um padrão

sem necessidade de “chutar”;

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 120: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

ü Nem sempre temos intuição suficiente para dar um palpite

correto; ü O método da iteração permite que se reconheça um padrão

sem necessidade de “chutar”; ü Quando funciona, a solução da relação de recorrência é

obtida resolvendo-se um somatório.

Método de suposição e verificação

Raquel de Souza Francisco Bravo

Page 121: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

§  O método consiste esquematicamente de:

Método da Iteração ou Substituição

Raquel de Souza Francisco Bravo

Page 122: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

§  O método consiste esquematicamente de: ü  algumas iterações do caso geral são expandidas até se

encontrar uma lei de formação;

Método da Iteração ou Substituição

Raquel de Souza Francisco Bravo

Page 123: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

§  O método consiste esquematicamente de: ü  algumas iterações do caso geral são expandidas até se

encontrar uma lei de formação; ü  o somatório resultante é resolvido substituindo-se os termos

recorrentes por fórmulas envolvendo apenas o(s) caso(s) base.

Método da Iteração ou Substituição

Raquel de Souza Francisco Bravo

Page 124: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Consideremos a relação de recorrência para o Problema da Torre de Hanói:

Tn = 2Tn-1 + 1 , n > 1

1 , n= 1

Método da Iteração ou Substituição

Raquel de Souza Francisco Bravo

Page 125: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Consideremos a relação de recorrência para o Problema da Torre de Hanói: Observação:

O método iterativo ou de substituição, é útil para relações de recorrência do tipo:

an = an-1 + f(n)

para n≥1 e a0 dado.

Tn = 2Tn-1 + 1 , n > 1

1 , n= 1

Método da Iteração ou Substituição

Raquel de Souza Francisco Bravo

Page 126: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

Problema das Ovais

Se n ovais são desenhadas no plano e são tais que qualquer oval intercepta cada uma das outras ovais em exatamente 2 pontos e não temos 3 ovais se interceptando no mesmo ponto, então em quantas regiões essas ovais dividem o plano?

Raquel de Souza Francisco Bravo

Page 127: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

1

2

Problema das Ovais

Raquel de Souza Francisco Bravo

Page 128: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

1

2

1

3 2 4

Problema das Ovais

Raquel de Souza Francisco Bravo

Page 129: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

1

2

1

3 2 4

3 2 4

1

5 7

8

6

Problema das Ovais

Raquel de Souza Francisco Bravo

Page 130: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

1

2

1

3 2 4

3 2 4

1

5 7

8

6

1 2 3 4

10 6

7 8 11

5 9 12 13 14

Problema das Ovais

Raquel de Souza Francisco Bravo

Page 131: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

§  Suponha que desenhamos n − 1 ovais que dividem o plano em an−1 regiões.

Problema das Ovais

Raquel de Souza Francisco Bravo

Page 132: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

§  Suponha que desenhamos n − 1 ovais que dividem o plano em an−1 regiões.

§  A n-ésima oval intercepta essas n − 1 ovais em 2(n − 1) pontos, isto é, a n-ésima oval vai ser dividida em 2(n − 1) arcos.

Problema das Ovais

Raquel de Souza Francisco Bravo

Page 133: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

§  Cada um desses arcos vai dividir cada uma das n − 1 ovais em 2 regiões, temos a relação de recorrência:

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

Problema das Ovais

Raquel de Souza Francisco Bravo

Page 134: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

§  Cada um desses arcos vai dividir cada uma das n − 1 ovais em 2 regiões, temos a relação de recorrência:

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

§  Qual é a condição de fronteira?

Problema das Ovais

Raquel de Souza Francisco Bravo

Page 135: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

§  Cada um desses arcos vai dividir cada uma das n − 1 ovais em 2 regiões, temos a relação de recorrência:

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

§  Qual é a condição de fronteira?

a1 = 2

Problema das Ovais

Raquel de Souza Francisco Bravo

Page 136: Recursão - Instituto de Computação - UFFueverton/files/aulasFMC/Aula 18.pdf · Fundamentos Matemáticos para Computação Ex: Considere a sequência: S = (1, 2, 22, 23, ···

Fundamentos Matemáticos para Computação

1, se n = 1 2T(n/2) +1, se n > 1

1) T(n) =

1, se n = 1 2T(n/2) + n2, se n > 1

2) T(n) =

1, se n = 1 2T(n/2) +n, se n > 1

3) T(n) =

Exercícios

Raquel de Souza Francisco Bravo