A aula apresenta o conceito de recursividade e exemplos de sua utilização, incluindo torre de Hanói, fatorial, somatório e números de Fibonacci. A recursividade permite definir conjuntos infinitos de objetos por meio de formulação finita e é útil para problemas que contém instâncias menores do próprio problema.
7. 13:08
O método de recursividade deve ser utilizado para
avaliar uma expressão aritmética na qual um
procedimento pode chamar a si mesmo, ou seja, a
recursividade consiste em um método que, para que
possa ser aplicado a uma estrutura, aplica a si mesmo
para as subestruturas componentes
Aula 08 – Recursão (conceito, utilização, exemplos)
Definição de Recursividade
11. Frases Célebres
13:08
“To understand recursion, we must first understand recursion”
“Ao tentar resolver o problema, encontrei obstáculos dentro de
obstáculos. Por isso, adotei uma solução recursiva”
Aula 08 – Recursão (conceito, utilização, exemplos)
12. Recursividade
13:08
O poder da recursão deve-se à possibilidade de definição de um
conjunto infinito de objetos por meio de uma formulação finita.
Muitos problemas computacionais têm a seguinte propriedade:
Cada instância do problema contém uma instância menor do mesmo problema.
• Dizemos que esses problemas têm estruturarecursiva.
Aula 08 – Recursão (conceito, utilização, exemplos)
13. Algoritmo Recursivo
13:08
Para resolver um tal problema é natural aplicar o seguinte método:
Aula 08 – Recursão (conceito, utilização, exemplos)
19. Fatorial de um número
13:08
Considere a função fatorial: fatorial = n!
Para um número inteiro não-negativo arbitrário
Aula 08 – Recursão (conceito, utilização, exemplos)
20. Fatorial de um número
13:08
Aula 08 – Recursão (conceito, utilização, exemplos)
21. Somatório Iterativo de números
13:08
Aula 08 – Recursão (conceito, utilização, exemplos)
Dados dois número inteiros, 𝑛 e 𝑘, crie uma função iterativa para calcular a
seguinte somatória:
22. Somatório Recursivo de números
13:08
Aula 08 – Recursão (conceito, utilização, exemplos)
Dados dois número inteiros, 𝑛 e 𝑘, crie uma função recursiva para calcular a
seguinte somatória:
37. Função recursiva
13:08
Uma função recursiva é definida em seus próprios termos
Toda função pode ser escrita como função recursiva sem o uso de
interação (laços)
Reciprocamente, qualquer função recursiva pode ser descrita
através de interações sucessivas
Ingredientes:
Definição de casos bases (que não envolvem recursão)
Passos recursivos, com decremento na entrada, no sentido do caso base.
Aula 08 – Recursão (conceito, utilização, exemplos)
38. Números de Fibonacci
13:08
Aula 08 – Recursão (conceito, utilização, exemplos)
Os números de Fibonacci foram propostos por Leonardo di Pisa (Fibonacci), em
1202, como uma solução para o problema de determinar o tamanho da
população de coelhos
39. Sequência de Fibonacci e a Natureza
13:08
Aula 08 – Recursão (conceito, utilização, exemplos)
40. Sequência de Fibonacci e a Natureza
13:08
Aula 08 – Recursão (conceito, utilização, exemplos)
47. 13:08 47
Quantos dígitos binários são
necessários para representar
um numero decimal?
Aula 08 – Recursão (conceito, utilização, exemplos)
48. Númerode dígitos binários
13:08
Aula 08 – Recursão (conceito, utilização, exemplos)
Crie uma função que calcula o número mínimo de dígitos binários para
representar um número inteiro decimal positivo 𝑛
50. Vantagens e Desvantagens
13:08
Aula 08 – Recursão (conceito, utilização, exemplos)
Vantagens
Redução do tamanho do código fonte
Permite descrever algoritmos de forma mais clara e concisa
Desvantagens
Redução do desempenho de execução devido ao tempo para gerenciamento de
chamadas
Dificuldades na depuração de programas recursivos, especialmente se a recursão
for muito profunda
53. Parece mágica, mas é programação...
13:08
Aula 08 – Recursão (conceito, utilização, exemplos)
Qual é o resultado da execução das seguintes funções para 𝑛 = 5?