jueves, 12 de septiembre de 2013

La función Factorial en PHP

Hoy hablaremos de la función factorial, ampliamente conocida por todos los programadores y entusiastas de las matemáticas.

Es una función muy utilizada como por ejemplo en el cálculo de binomiales. Para los que empezamos en el mundo de la programación, es una de las funciones que siempre aprendemos; tanto para practicar los bucles como para las funciones recursivas.

Voy a exponer algunas la formas de resolver esta función:

La primera, con un bucle for.

<?php
/* Creamos la variable con el número que deseamos y lo mostramos por pantalla */

$numero= 5;
echo 'El factorial del numero: '.$numero;

/* Creamos la función con un bucle for decreciente, recorremos $numero y que nos devuelve el resultado en la variable $total */

function factorial($numero)
{
	$total=1;
	for ( $i = $numero ; $i >= 1 ; $i--) 
	{
		$total=$total*$i;
	}
	return $total;
}

/* LLamamos a la función y la mostramos por pantalla */

$resultado=factorial($numero);
echo 'Da como resultado: '.$resultado;
?> 


La segunda opción, es con una funcion recursiva.

<?php
/* Creamos la variable con el número que deseamos y lo mostramos por pantalla */

$numero= 6;
echo 'El factorial del numero: '.$numero;

/*Creamos la función recursiva*/

function factorial($n)
{
   if($n==1)
      return 1;
   else
      return $n * factorial($n-1);
}

/*Llamamos a la función y mostramos el resultado*/

echo 'Da como resultado: '.factorial($numero);
?> 

La tercera opción, con la función definida GMP_FACT (añadir el módulo en php.ini si no está habilitado)

<?php
/* Creamos la variable con el número que deseamos y lo mostramos por pantalla */

$numero= 5;
echo 'El factorial del numero: '.$numero;

/*Utilizamos la función gmp_fact para calcular el factorial y la función gmp_strval para mostrarla*/

$resultado = gmp_fact($numero);
echo 'Da como resultado: '.gmp_strval($resultado);
?> 

Como veis el resultado es el mismo, os dejo a vosotros la elección a vuestro gusto.

2 comentarios:

  1. Factorial N, con esta app podras calcular el factorial de cualquier número
    https://play.google.com/store/apps/details?id=com.fjapps.juank.factorial&hl=es

    ResponderEliminar