El factorial de un número es un concepto matemático importante. Puede usarlo para realizar permutaciones y combinaciones, escribir expresiones exponenciales y logarítmicas y calcular probabilidades.

Lo usa para encontrar la cantidad de formas diferentes en que puede diseñar una disposición de asientos o elegir camisetas para sus vacaciones en las Maldivas. Pero, ¿cómo se puede calcular el factorial de un número?

¿Qué es el factorial de un número?

El factorial de un número positivo es el producto de todos los enteros positivos menores o iguales al valor del número mismo. Un número seguido de un signo de exclamación (!) denota el factorial de un número. ¡Usted representa el factorial de cinco como 5! y calcularlo como:

5! = 5 * 4 * 3 * 2 * 1 = 120

Otra forma de visualizarlo es:

5! = 5 * 4! donde 4! = 4 * 3!, 3! = 3 * 2! y así sucesivamente hasta obtener 1! = 1 * 0! que es 1

Utilizará este concepto para construir nuestro programa factorial usando un concepto popular llamado recursividad.

¿Qué es la recursividad?

instagram viewer

La recursividad es un proceso en el que una función se llama a sí misma. Una de las principales ventajas de este proceso es que divide un problema más grande en partes más pequeñas. Esto hace que el problema sea más fácil de resolver.

Puede usar la recursividad para resolver problemas apropiados en tres sencillos pasos:

  1. Encuentre el caso base: Si una función siempre se llama a sí misma, el proceso será infinito. Para evitar que esto suceda, defina un caso base que se convierta en el punto de parada lógico para su función. Por ejemplo, en un programa factorial, detenga el cálculo en cero. Esto se convierte en el caso base del problema.
  2. Encuentre la relación entre el problema y los subproblemas: Divide el problema más grande en un subproblema. Por ejemplo, el problema es encontrar el factorial de cinco. Suponga que tiene la respuesta del factorial de cuatro, es decir, 24. ¿Cómo obtendrás el factorial de cinco usando 24? Multiplicando cinco en él mismo. Esta es la relación entre el problema y el subproblema.
  3. Generalice la relación encontrada en el Paso 2: Ahora que tienes la relación, generalízala en términos de n. Entonces, el factorial de un número n es el producto de n y el factorial de n-1.

Puedes usar este concepto para hallar la suma de n numeros naturales, calcule MCD, MCM, la serie de Fibonacci y verifique los números primos.

Pseudocódigo para la función factorial usando recursividad

Esto es como usas la recursividad y escriba el pseudocódigo para construir su programa en cualquier idioma. Con diferentes lenguajes, la sintaxis y la ejecución cambian pero la lógica permanece intacta.

funciónHecho(norte)
Si n == 0 entonces // caso base
Devolver1
Devolver n * Hecho de llamada (n - 1) // relación generalizada

Programa Factorial en C

C fue el primer lenguaje de programación independiente de plataforma de alto nivel. Tiene una sintaxis estricta, distingue entre mayúsculas y minúsculas y ejecuta el código con la mayor velocidad. Es un lenguaje de programación procedimental y, por lo tanto, declara cualquier función encima de la principal función. Así es como puede construir el programa factorial usando recursividad en lenguaje C:

Puede encontrar el código fuente completo del programa factorial usando recursividad en C, Java y Python en este repositorio GitHub.

  1. Importe el archivo de encabezado de salida de entrada estándar para mostrar la salida en la pantalla.
    #incluir <stdio.h>
  2. Definir función hecho y tomar entero norte como argumento.
    En thecho(En t norte){
  3. Escribe el caso base de la función usando el si declaración y verifique su igualdad usando ==. Si n es igual a cero, devuelve uno.
     si (n == 0)
    devolver1;
  4. Escribe la ecuación generalizada y devuelve el producto de norte con una llamada de función de subproblema n-1.
    devolver n * hecho (n - 1);
    }
  5. Declare la función principal e inicialice una variable de tipo entero para almacenar el número cuyo factorial desea encontrar.
    En tprincipal(){
    En t número = 5;
  6. Muestre el factorial del número usando el imprimirf() función. %d es el especificador de formato decimal. Use cada uno de los especificadores de formato para reemplazarlo con el número cuyo factorial desea encontrar y obtenga el resultado llamando a la función.
     imprimirf("El factorial de %d es %d", num, hecho (num));
    devolver0;
    }

programa factorial en java

Java es un lenguaje de programación compilado y es independiente de la plataforma. Almacenas todo el código dentro de un clase y la ejecución comienza desde el principal función. Se distingue entre mayúsculas y minúsculas y la sintaxis es estricta. El código es un poco más largo pero más rápido en comparación con Python. Así es como puede construir el programa factorial usando recursividad en Java:

  1. Defina la clase Principal.
    clasePrincipal{
  2. Defina una función estática con tipo de retorno int que acepte una variable n de tipo entero. Declaró un método estático como el método principal en Java también se declara como estático. Además, no puede llamar a un método no estático desde una instancia estática.
    estáticoEn thecho(En t norte){
  3. Escribe el caso base de la función usando el si declaración y verifique su igualdad usando ==. Si n es igual a cero, devuelve uno.
     si (n == 0)
    devolver1;
  4. Escribe la ecuación generalizada y devuelve el producto de norte con una llamada de función de subproblema n-1.
    devolver n * hecho (n - 1);
    }
  5. Declarar la función principal en Java. Declare el modificador de acceso como público, por lo que puede ser accesible para todas las demás clases y métodos. Declaras la función principal como estático para que el compilador pueda invocarlo sin instanciar la clase. El tipo de retorno es vacío, y acepta argumentos del tipo Cadena. Almacene el número cuyo factorial desea encontrar.
    públicoestáticovacíoprincipal(Cadena[] argumentos){
    En t número = 5;
  6. Utilizar el imprimir() método, una instancia del flujo de impresión clase, definida en el Sistema clase para mostrar el factorial del número.
     Sistema.fuera.println("Factorial de " + número + " es " + hecho (num));
    }
    }

Programa factorial en Python

Escribir código en Python es súper fácil y divertido. Como es un lenguaje interpretado independiente de la plataforma, no es necesario que declare el tipo de datos de las variables. También evita tener que declarar clases e importar bibliotecas para un programa tan simple. El patio de recreo está listo para que comiences a programar.

La sintaxis es más sencilla, con una longitud de código pequeña, pero lleva un poco más de tiempo de ejecución que los otros lenguajes. Así es como puede construir el programa factorial usando recursividad en Python:

  1. Defina el hecho de la función que acepta como argumento n.
    definitivamentehecho(norte):
  2. Escribe el caso base de la función usando el si declaración y verifique su igualdad usando ==. Si n es igual a cero, devuelve uno.
     si n == 0:
    devolver1
  3. Escribe la ecuación generalizada y devuelve el producto de norte con una llamada de función de subproblema n-1.
    devolver n * hecho (n-1)
  4. Almacene el número cuyo factorial desea encontrar y muéstrelo usando la declaración de impresión.
    número = 5;
    imprimir("Factorial de", número, "es", hecho (num))

Hay muchas aplicaciones de recursividad

La recursividad es una forma efectiva de resolver problemas. Es el quid de la Inteligencia Artificial y tiene usos reales en juegos de rompecabezas como el ajedrez o el Sudoku.

También es un método poderoso para clasificar estructuras de datos como Tree o algoritmos de clasificación como Quick sort y Merge sort. También puede usar la recursión en algoritmos de búsqueda como la búsqueda binaria, expresiones matemáticas como la serie de Fibonacci y más.