Diferencia entre revisiones de «Factorial»
→Véase también: agregué enlace productorio |
|||
Línea 127: | Línea 127: | ||
integer :: i |
integer :: i |
||
factorial = 1 |
factorial = 1 |
||
do i = |
do i =243fsad factorial = factorial * i |
||
factorial = factorial * i |
|||
end do |
end do |
||
end function |
end function |
Revisión del 16:00 5 abr 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 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:
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 Fortan:
! Factorial en Fortran 90 - implementación iterativa
function factorial(n)
integer, intent(in) :: n
integer :: factorial
integer :: i
factorial = 1
do i =243fsad 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
- Algoritmos interesantes(en inglés)
- http://factorielle.free.fr
- Calculadora de factoriales - Hasta 200.000!