Conteúdo principal
Curso: Computer science theory > Unidade 1
Lição 6: Algoritmos recursivos- Recursividade
- A função fatorial
- Desafio: Fatorial iterativo
- Fatorial recursivo
- Desafio: Fatorial recursivo
- Propriedades de algoritmos recursivos
- Usando recursividade para determinar se uma palavra é um palíndromo
- Desafio: A string é um palíndromo?
- Calculando a potência de um número
- Desafio: Potência recursiva
- Recursão múltipla com o triângulo de Sierpinski
- Melhorando a eficiência das funções recursivas
- Projeto: Arte recursiva
© 2024 Khan AcademyTermos de usoPolítica de privacidadeAviso de cookies
Fatorial recursivo
Para valores positivos de , vamos escrever como fizemos anteriormente, como um produto de números iniciados a partir de indo até 1: = . Mas perceba que é mais uma maneira de dizer e, portanto, podemos dizer que . Você viu o que fizemos? Escrevemos como um produto no qual um dos fatores é . Nós dizemos que podemos calcular ao calcular e multiplicar o resultado por . Você pode calcular a função fatorial em ao, primeiramente, calcular a função fatorial de . Podemos dizer que calcular é um subproblema que resolvemos para calcular !.
Vamos ver um exemplo: o cálculo de 5!.
- Você pode calcular 5! como
. - Agora você precisa solucionar o subproblema de calcular 4!, que você pode calcular como
!. - Agora você precisa solucionar o subproblema de calcular 3!, que é
. - Agora 2!, que é
. - Agora você precisa calcular 1!. Podemos dizer que 1! é igual a 1, porque é o produto de todos os números inteiros de 1 até 1. Ou você pode aplicar a fórmula
. Vamos fazer aplicando a fórmula. - Definimos que 0! é igual a 1.
- Agora você pode calcular que
. - Tendo calculado
, você pode calcular . - Tendo calculado
, você pode calcular . - Tendo calculado
, você pode calcular . - Finalmente, tendo calculado
, você pode terminar calculando .
Então, agora temos outro modo de pensar em como calcular o valor de para todos os números inteiros não-negativos:
- Se
, declare que . - Caso contrário,
precisa ser positivo. Solucione o subproblema de calcular , multiplique o resultado por , e declare igual ao resultado desse produto.
Quando calculamos dessa maneira, chamamos o primeiro caso, no qual sabemos imediatamente a resposta, o caso base, e chamamos o segundo caso, no qual temos que calcular a mesma função mas com um valor diferente, o caso recursivo.
Este conteúdo é uma colaboração entre os professores de ciência da computação da Universidade de Dartmouth, Thomas Cormen e Devin Balkcom, juntamente com a equipe do currículo de computação da Khan Academy. O conteúdo é licenciado CC-BY-NC-SA.
Quer participar da conversa?
Nenhuma postagem por enquanto.