O que é Recursividade - Exemplo de Fatorial Recursivo em Lógica de Programação

  Рет қаралды 5,785

Boson Treinamentos

Boson Treinamentos

Күн бұрын

Пікірлер: 6
@bosontreinamentos
@bosontreinamentos 11 ай бұрын
Ajude o canal adquirindo meus cursos na Udemy: Bancos de Dados com MySQL Básico: bit.ly/35QdWE4 Lógica de Programação com Português Estruturado: bit.ly/3QKPn22 Programação em Python do Zero: bit.ly/python-boson Adquira também livros e outros itens na loja da Bóson Treinamentos na Amazon e ajude o canal a se manter e crescer: www.amazon.com.br/shop/bosontreinamentos
@caiotorres6156
@caiotorres6156 9 ай бұрын
muito boa explicação! estudo Ciência da Computação em francês e isso me ajudou a compreender mil vezes melhor
@LucasMartinsdeVargas2112
@LucasMartinsdeVargas2112 7 ай бұрын
Valeu professor Fábio! Sua didática é excelente! 👏🏽😉
@linuxbashgnu6018
@linuxbashgnu6018 Жыл бұрын
Grande aula!
@yondaime500
@yondaime500 Жыл бұрын
Um problema da recursividade é que cada nova chamada da função vai fazendo crescer a pilha de execução, então se a função precisar chamar a si mesma muitas vezes, pode acontecer o famoso "stack overflow". Existe a técnica de recursividade em cauda que pode impedir isso em algumas linguagens de programação. Outra armadilha é que a função pode chamar a si mesma mais de uma vez, aí o número de operações cresce exponencialmente com o número de passos de recursão. Um exemplo clássico é a sequência de Fibonacci (exemplo em Rust): fn fibonacci(n: u64) -> u64 { match n { 0 | 1 => 1, n => fibonacci(n - 1) + fibonacci(n - 2), } } A chamada fibonacci(40) leva 200ms para executar no meu computador. Dá para melhorar o desempenho de funções desse tipo usando uma técnica chamada "memoização", que consiste em guardar o resultado das últimas chamadas da função para evitar fazer o mesmo cáculo várias vezes. Mas nesse caso, essa função recursiva só é usada mesmo como benchmark para testar o desempenho da CPU. Se quisermos realmente calcular a sequência, podemos usar um simples laço for, que leva 5ns para fazer o mesmo cálculo fibonacci(40) (ou seja, é 40 milhões de vezes mais rápida). fn fibonacci(n: u64) -> u64 { let (mut cur, mut prev) = (1, 1); for _ in 1..n { (cur, prev) = (cur + prev, cur); } cur }
@Powernetconect
@Powernetconect Жыл бұрын
Tem curso pra iniciantes no seu site?
Lógica de Programação - Recursividade - 30
18:33
Bóson Treinamentos
Рет қаралды 51 М.
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
1% vs 100% #beatbox #tiktok
01:10
BeatboxJCOP
Рет қаралды 67 МЛН
Porque eu não usaria o Python - Problemas da linguagem
11:30
Bóson Treinamentos
Рет қаралды 36 М.
O que é a Notação Big O em Algoritmos
13:33
Bóson Treinamentos
Рет қаралды 10 М.
Recursão em Python - Como Funciona e Quando Usar?
31:26
Hashtag Programação
Рет қаралды 11 М.
Big O Notation: O Pesadelo do Programador Iniciante
13:54
Lucas Montano
Рет қаралды 68 М.
Quantas questões de Lógica de Programação você consegue acertar? Quiz
17:45
O PODER DA RECURSIVIDADE
8:31
ENSICO
Рет қаралды 6 М.
Python laid waste to my C++!
17:18
Sheafification of G
Рет қаралды 184 М.
Ponteiros função com parâmetro por referência
17:12
Eduardo Casavella
Рет қаралды 25 М.
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН