Diferencia entre revisiones de «Factorial»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Sin resumen de edición
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 200.7.141.5 a la última edición de Diegusjaimes
Línea 297: Línea 297:
[[vi:Giai thừa]]
[[vi:Giai thừa]]
[[zh:階乘]]
[[zh:階乘]]








che pibe el algotritmo de pascal no anda bien..
si podes revisa q el caso en q es 0 y cuando el numero es mayor a 7 te tira numeros negativos...supongo q es porque los enteros soportan hasta aprox el munero 32.000...

si queres correjilo y mandamelo al mail y veo si esta bien....

y no subas mas burradas..

rodri_hp91@hotmail.com

un abrazo...

Revisión del 20:09 4 may 2010

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 2.432.902.008.176.640.000
25 15.511.210.043.330.985.984.000.000
50 30.414.093.201.713.378.043 × 1045
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

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

Que de un modo resumido, se puede expresar como:

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.

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:

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 Tynril). 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:

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

Productos similares

Primorial

El primorial (sucesión A002110 en OEIS) se define de forma similar al factorial, pero sólo se toma el producto de los números primos menores o iguales que n.

Doble factorial

Se define el doble factorial de n como:


Por ejemplo, 8!! = 2 · 4 · 6 · 8 = 384 y 9!! = 1 · 3 · 5 · 7 · 9 = 945. La sucesión de dobles factoriales (sucesión A006882 en OEIS) para empieza así:

1, 1, 2, 3, 8, 15, 48, 105, 384, 945, 3840, ...

La definición anterior puede extenderse para definir el doble factorial de números negativos:

Y esta es la sucesión de dobles factoriales para :

El doble factorial de un número negativo par no está definido.

Algunas identidades de los dobles factoriales:

Implementación en lenguajes de programación

A continuación se presentan dos implementaciones de la función factorial en distintos lenguajes de programación. La primera, en Fortran, es iterativa, es decir, realiza un bucle en el que se multiplica una variable temporal por cada número natural entre 1 y n, mientras que la otra (en C) es recursiva, por lo que la función factorial se llama a sí misma con un argumento cada vez menor hasta llegar al caso base 0!=1.

Ejemplos

En lenguaje de programación Pascal:

! Factorial en Pascal por medio de una función.
Program factoriales;
Var
	j,m:integer;

function factorial(n:integer):integer;
Var
	i,a:integer;
Begin
	a:=1;
	for i:=1 to (n) do
	begin
		a:=a*i;
	end;
	factorial:=a;
end;

Begin
	writeln('Ingrese el numero maximo');
	readln(m);
	for j:=1 to m do
	writeln(j,' y su factorial es: ',factorial(j));
	readln(m);
end.

En lenguaje de programación Fortan:

! Factorial en Fortran 90 - implementación iterativa
function factorial(n)
    integer, intent(in) :: n
    integer :: factorial
    integer :: i
    factorial = 1
    do i = 2, n
        factorial = factorial * i
    end do
end function
! Uso
write (*,*) factorial(5)
! 120

En lenguaje de programación C

// Factorial en C99 - implementación recursiva
unsigned int factorial(unsigned int n) {
    if (n > 0)
        return n * factorial(n-1);
    else return 1;
}
// Uso
printf("%u", factorial(5));
// 120

En lenguaje de programación Python:

# Factorial en python como implementación recursiva.
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
# Uso
print factorial(5)
# 120

En lenguaje de programación Java

//Factorial en Java, Hildefonso Tirado
import java.applet.*;
import java.awt.event.*;
import java.awt.*;


public class Factorial extends Applet implements  ActionListener{
	Label l1,l2;
	TextField t1,t2;
	Button b;
	
		public Factorial(){//Funcion constructora
		l1 = new Label("Numero");
		t1 = new  TextField(2);
		l2 = new Label("Factorial");
		t2 = new TextField(2);
		b = new Button("Calcular!");
		add(l1);
		add(t1);
		add(b);		
		add(l2);
		add(t2);				
		b.addActionListener(this);
	
}

 public void actionPerformed(ActionEvent ae) {
      int n = Integer.parseInt(t1.getText());
      
        if (n > 1){
        	 	
        for(int i=n-1; i!= 0;){//inicio del ciclo
      	n = n * i;
      	i--;
      } //fin del ciclo for
    	t2.setText(""+n);

        
        }
        else{
        	t2.setText("1");
        }
	 
	 }
 }

Véase también

Enlaces externos