
Definindo o Ano Atual como Valor Padrão em Migrations do Laravel
Ao trabalhar com migrations no Laravel, uma tarefa comum é definir valores padrão para colunas em tabelas de banco de... Leia mais
Desenvolvedor de Software
Recursão é um conceito essencial em programação que se refere a uma função que se chama a si mesma dentro de sua definição. Embora possa parecer complicado à primeira vista, a recursão é uma ferramenta poderosa e elegante para resolver problemas complexos de maneira simplificada. Neste artigo, exploraremos como a recursão pode ser aplicada em PHP para resolver um dos quebra-cabeças mais fascinantes e educativos da ciência da computação: a Torre de Hanoi.
A recursão acontece quando uma função chama a si mesma. Cada chamada da função trabalha em uma parte menor do problema, aproximando-se de uma condição que não exige mais chamadas recursivas, conhecida como caso base ou ponto de parada. Sem alcançar o caso base, a função continuaria se chamando infinitamente, o que resulta em um erro de “estouro de pilha” ou “loop infinito”. Portanto, o projeto de uma função recursiva deve garantir que ela sempre tenha um ponto de parada.
A Torre de Hanoi é um problema clássico de recursão que envolve mover uma série de discos de um pino para outro, com a condição de que um disco maior não pode ser colocado em cima de um disco menor e que apenas um disco pode ser movido de cada vez. A solução para o problema da Torre de Hanoi é elegante e demonstra bem o poder da recursão.
Vamos ver como isso pode ser implementado em PHP:
function torreDeHanoi($n, $origem, $destino, $auxiliar) {
if ($n === 1) {
echo "Mova o disco 1 de $origem para $destino" . PHP_EOL;
return;
}
// Move n-1 discos de origem para auxiliar, usando destino como auxiliar
torreDeHanoi($n-1, $origem, $auxiliar, $destino);
// Move o disco restante de origem para destino
echo "Mova o disco $n de $origem para $destino" . PHP_EOL;
// Move os n-1 discos de auxiliar para destino, usando origem como auxiliar
torreDeHanoi($n-1, $auxiliar, $destino, $origem);
}
// Quantidade de discos
$discos = 3;
torreDeHanoi($discos, 'A', 'C', 'B');
Ao trabalhar com migrations no Laravel, uma tarefa comum é definir valores padrão para colunas em tabelas de banco de... Leia mais
Para agilizar as instalações das minhas ferramentas de desenvolvimento quando for necessário resolvi montar o seguinte script: Basta colocar o... Leia mais
Recentemente me deparei com um problema curioso que ocorre no GIT principalmente enquanto escrevemos código em modo root e depois... Leia mais
O WSL 2 (Windows Subsystem for Linux) representa um grande avanço na integração entre o Windows e o Linux, permitindo... Leia mais