Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

factorial

Factorial de una entrada

Descripción

f = factorial(n) devuelve el producto de todos los enteros positivos menores que o iguales a n, donde n es un valor entero no negativo. Si n es un arreglo, f contiene el factorial de cada valor de n. El tipo de datos y el tamaño de f son los mismos que los de n.

El factorial de n normalmente se escribe en notación matemática con el carácter de exclamación como n!. Tenga en cuenta que n! no es una sintaxis de MATLAB® válida para calcular el factorial de n.

ejemplo

Ejemplos

contraer todo

f = factorial(10)
f = 3628800
format long
f = factorial(22)
f = 
     1.124000727777608e+21

En este caso, f es preciso hasta 15 dígitos, 1.12400072777760e+21, porque los números de doble precisión solo son precisos hasta 15 dígitos.

Restablezca el formato de salida al valor predeterminado.

format
n = [0 1 2; 3 4 5];
f = factorial(n)
f = 2×3

     1     1     2
     6    24   120

n = uint64([5 10 15 20]);
f = factorial(n)
f = 1x4 uint64 row vector

                   120               3628800         1307674368000   2432902008176640000

Argumentos de entrada

contraer todo

Valores de entrada especificados como escalar, vector o arreglo de enteros reales no negativos.

Ejemplo: 5

Ejemplo: [0 1 2 3 4]

Ejemplo: int16([10 15 20])

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Sugerencias

Limitaciones

  • Para entradas de doble precisión, el resultado es exacto cuando n es menor que o igual a 21. Los valores de n mayores generan un resultado que tiene el orden de magnitud correcto y es preciso en los primeros 15 dígitos. Esto se debe a que los números de doble precisión solo son precisos hasta 15 dígitos.

  • Para entradas de precisión simple, el resultado es exacto cuando n es menor que o igual a 13. Los valores de n mayores generan un resultado que tiene el orden de magnitud correcto y es preciso en los primeros 8 dígitos. Esto se debe a que los números de precisión simple solo son precisos hasta 8 dígitos.

Saturación

  • La tabla que aparece a continuación describe el comportamiento de saturación de cada tipo de datos cuando se utiliza con la función factorial. Los valores de la última columna indican el punto de saturación, es decir, el primer entero positivo cuyo factorial real es mayor que el valor máximo representable de la columna central. Para single y double, todos los valores mayores que el valor máximo se devuelven como Inf. Para los tipos de datos de valores enteros, el valor de saturación es igual al valor máximo de la columna central.

    Tipo de datosValor máximoUmbral de saturación factorial
    doublerealmaxfactorial(171)
    singlerealmax('single')factorial(single(35))
    uint64264-1factorial(uint64(21))
    int64263-1factorial(int64(21))
    uint32232-1factorial(uint32(13))
    int32231-1factorial(int32(13))
    uint16216-1factorial(uint16(9))
    int16215-1factorial(int16(8))
    uint828-1factorial(uint8(6))
    int827-1factorial(int8(6))

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.

Historial de versiones

Introducido antes de R2006a

Consulte también