Factorial

Recomendar esta página Ver en PDF Imprimir esta página
Wiki de astronomía.
Todo el poder de la Wikipedia y toda la esencia de la astronomía

Factorial

De Wikipedia, la enciclopedia libre

n n!
0 1
1 1
2 2
3 6
4 24
5 120
6 720
7 5.040
8 40.320
9 362.880
10 3.628.800
15 1.307.674.368.000
20 24.32.902.008.176.640.000
25 15.511.210.043.330.985.984.000.000
50 3,04140932… × 1064
70 1,19785717… × 10100
450 1,73336873… × 101.000
3.249 6,41233768… × 1010.000
25.206 1,205703438… × 10100.000
100.000 2,8242294079… × 10456.573

Tabla de contenidos

[editar] Definición

Para todo número natural n, se llama n factorial o factorial de n al producto de todos los naturales entre 1 y n:

n! = 1 times 2 times 3 times 4 times ... times (n-1) times n ,

Que de un modo resumido, se puede expresar como:

n! = prod_{k=1}^n k

Se define 0! = 1, para que la relación n! = n × (n ? 1)! sea también válida para n = 1. Esta relación permite definir los factoriales por recursividad. La notación n! fue popularizada por el matemático francés Christian Kramp.

n!= begin{cases}  mbox{si }n=0 & Rightarrow 1  \  mbox{si }n geqslant 1 & Rightarrow (n-1)! cdot n end{cases}

Los factoriales se usan mucho en la rama de la matemática llamada combinatoria, a través del binomio de Newton, que da los coeficientes de la forma desarrollada de (a + b)n:

(a + b)n = an + n × an ? 1 × b + Cn, 2 × an ? 2 × b2 + … + n × a × bn ? 1 + bn

con: C_{n,k} = begin{pmatrix} n \ k end{pmatrix} = frac{n!}{(n - k)! cdot k!}

Por medio de la combinatoria, los factoriales intervienen en el cálculo de las probabilidades. Intervienen también en el ámbito del análisis, en particular a través del desarrollo polinomial de las funciones (fórmula de Taylor). Se generalizan a los reales con la función gamma, de gran importancia en el campo de la aritmética.

Para valores grandes de n, existe una expresión aproximada para el factorial de n, dado por la fórmula de Stirling:

n!approx sqrt{2 pi n} left ( frac{n}{e} right )^{n}

La ventaja de esta fórmula es que no precisa inducción y, por lo tanto, permite evaluar n! más rápidamente cuando mayor sea n.

El factorial de n es generalizado para cualquier número real n por la Función gamma de manera que

n!=int^infty_0t^ne^{-t}dt=Gamma(n+1)

[editar] Doble factorial

De manera similar, se define

begin{align}   0!! &= 1;\   1!! &= 1;\   n!! &= n(n-2)!!quadmathrm{si} n>=2  end{align}” class=”tex” src=”https://upload.wikimedia.org/math/8/a/7/8a7e99e6878276b2f97db272b435af8b.png”></dd>
</dl>
<p>Los dobles factoriales, se relacionan con el factorial de la sigiente manera:</p>
<ol>
<li>Si n = 2k,
<dl>
<dd><img decoding=
  • Si n = 2k + 1,
    (2k+1)! = (2k+1)!!cdot(2k)!!
  • y por la expresión anterior,

    1. (2k+1)!! = frac{(2k+1)!}{2^k,k!}

    [editar] Implementación en lenguajes de programación

    [editar] Factorial

    [editar] BASIC

    'Función Factorial usando recursividad
    Public Function Factorial(ByVal num As Integer) As Integer
        If num = 1 Or num = 0 Then
            Return 1
        Else
            Return num * Factorial(num - 1)
        End If
    End Function
     
    'Función Factorial usando un ciclo For .. Next
    Public Function Factorial(ByVal num As Integer) As Integer
        Dim I As Long
        Dim Fact As Integer = 1
        If num = 0 Then
            Return 1
        Else
            For I = 1 To num
                Fact *= I
            Next
            Return Fact
        End If
    End Function
    

    [editar] BASIC

    factorial = 1
    FOR i = 1 TO n
        factorial = factorial * i
    NEXT
    

    [editar] Bash

    declare -i FACTORIAL
     
    function factorial
    {
        declare -i N=$1
     
        if [ $N -eq 0 ]; then
            FACTORIAL=1
        else
            factorial $N-1
            FACTORIAL=$N*$FACTORIAL
        fi
        return
    }
    

    [editar] C

    int factorial(int n)
    {
        if(n == 0)
            return 1;
        else
            return factorial(n-1)*n;
    }
    

    [editar] Borland Delphi

    program MyFact;
     
    {$APPTYPE CONSOLE}
     
    uses
      SysUtils;
     
     
    function Factorial( Numero: Integer): Integer;
    var
      i, s: Integer;
    begin
     
     s := 1;
     
     if(Numero <> 0) then
     begin
      for i := Numero downto 1 do
       s := s * i;
     end;
     
     Result := s;
    end;
     
     
    var
     n, x : Integer;
    begin
     
      Write('Por favor introduzca numero: ');
      Readln(n);
     
      x := Factorial(n);
      WriteLn('El factorial de "' + IntToStr(n) + '" es: ' + IntToStr(x));
     
      Readln;
     
    end.
    

    [editar] Java (Applet)

    import java.util.*;
    import java.io.*;
    import java.math.*;
    public class factorial {
    public static double factorial(double n){
            if(n!=0){
     
            return(n+factorial(n-1));
            }
            public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.print("introduce el numero:  ");
            double n = sc.nextDouble();
        System.out.print("El factorial es:      "+factorial(n));
     
            }   
    }
    GMO
    

    [editar] Python

    def factorial(n):
         if n == 0:
             return 1
         else:
             return n*factorial(n-1)
    

    [editar] Ruby

    def factorial(n)
       if n == 0
         1
       else
         n * factorial(n-1)
       end
     end
    

    [editar] Enlaces externos

    Scroll to Top