- PHP - Elementos estructurales - Función recursiva -

Una función recursiva es una función, la cual se llama a si misma, directa o indirectamente (digamos, al llamar una función que llama la función en cuestión).
La idea central que se encuentra tras la recursividad (o recurrencia), es la simplificación de un problema a traves de su división en problemas más pequeños.
Como la función se llama a sí misma, se corre el peligro de que la ejecución se convierta en un bucle infinito, por lo que ha de garantizarse una condición que interrumpa el proceso.
El uso de esta función puede ilustrarse con el cálculo del factorial de un número, cuya formula es: n!=n*(n-1), lo que es aplicado en combinatoria, por ejemplo.

<html>
<head>
<title>Calculo de un n&uacute;mero factorial</title>
</head>
<body bgcolor="#eceaf3">
<font face = "verdana" size='+1'>
<pre>
<?php
function factorial($n)
{
            if($n==1)
                        {
                                   return 1;
                        }
            else
                        {
                                   return $n*factorial($n-1);
                        }
}
$var=factorial(5);
echo"$var";
?>
</pre>
</font>
</body>
</html>

Otro ejemplo que ilustra está función es la sucesión de Fibonacci, la cual consiste en una sucesión infinita de números, los cuales comienzan con 0 y 1. A partir de estos, cada elemento se constitulle con la suma de los dos anteriores.
Ejemplo:

<html>
<head>
<title>Calculo de secuencia de Fibonacci</title>
</head>
<body bgcolor="#eceaf3">
<font face = "verdana" size='+1'>
<pre>
<?php
  $countar=0;
  function fibonacci($n)
            {
            global $countar;
            $countar++;
            switch($n)
                                   {
                                   case 0:
                                   return(0);
                                   break;
                                   case 1:
                                   return(1);
                                   break;
                                   default:
                                               // LLamadas recursivas
                                   return(fibonacci($n-1)+fibonacci($n-2));
                                   break;
                        }
            }
?>
Secuencia de Fibonacci
<?php
   for($num=0;$n<10;$n++)
   {
     $var=fibonacci($n);
     echo "$var<br/>";
   }
?>
 La funci&oacute;n fue llamada <?php echo $n; ?> veces.<br>
</pre>
</font>
</body>
</html>


previo
Imprimir..
Ultima actualisación: Tue, 24 ▪ May ▪ 2011
próximo