Clase Main.
package Estadistica;
public class Main {
public static void main(String[]argc) {
Estadistica p = new Estadistica ();
System.out.printf ("Factorial de 5 = %f\n", p.Factorial(5));
System.out.printf("Permutacion 5, 3 = %.0f\n", p.Permutacion(5, 3));
System.out.printf("Combinacion 5, 3 = %.0f\n", p.Combinacion(5, 3));
System.out.printf("Binomial 20, 3, 0.5 puntual = %f\n", p.Binomial(20, 3, 0.5, false));
System.out.printf("Binomial 20, 14, 0.5 acumulado = %f\n", p.Binomial(20, 14, 0.5, true));
System.out.printf("Normal 1.75, 1.85, 1.80, 0.5 = %f\n", p.Normal(1.75, 1.85, 1.80, 0.05));
System.out.printf( "Hipergeometrica 4, 6, 3, 1 = %f\n", p.Hipergeometrica(4, 6, 3, 1));
System.out.printf( "Poisson 5,8 = %f\n", p.Poisson(5,8));
}
}
Clase Estadistica.
package Estadistica;
public class Estadistica {
final static double e = 2.7182;
//double es el tipo de dato que regresara la pc
public double Factorial(double args) {
if (args <= 0.0) {
return 1.0;
}
return(args * Factorial(args - 1.0));
}
public double Permutacion (int n, int r) {
return (this.Factorial(n) / this.Factorial(n-r));
}
public double Combinacion (double n, double n2) {
return (this.Factorial (n) / (this.Factorial(n-n2) * this.Factorial(n2)));
}
public double Binomial (int n, int r, double p, boolean acum){
double acumulado;
if( acum ){
acumulado=0.0;
for (int i =0; i <= r; i++){
acumulado += (this.Combinacion( n, i ) * Math.pow(p,i) * Math.pow (1.0-p, (n-i)));
}
return acumulado;
}
else {
return (this.Combinacion( n, r ) * Math.pow(p,r) * Math.pow (1.0-p, (n-r)));
}
}
public double Normal( double linf, double lsup, double media, double sigmma) {
double parte1, parte2, dx, area1 = 0.0, area2 = 1.0;
int celdas = 50;
parte1 = 1.0 / ( sigmma * Math.sqrt(2.0 * Math.PI));
while(Math.abs(area1 - area2) > 0.0000001) {
area2 = area1;
area1 = 0.0;
celdas *= 2;
dx = (double)Math.abs(linf - lsup) / celdas;
for( double i = linf; i < lsup; i += dx ) {
parte2 = (i - media) / sigmma;
area1 += ( parte1 * Math.pow(Math.E, ( -1.0/2.0 * Math.pow(parte2, 2) ))) * dx;
}
}
return area1;
}
public double Hipergeometrica (double N, double n, double d, double x) {
return(this.Combinacion(d, x) * this.Combinacion(N - d, n - x) / this.Combinacion(N, n));
}
public double Poisson (double K, double A) {
return ((Math.pow (e,-A)) * ( Math.pow( A, K))) / (this.Factorial(K));
}
}
No hay comentarios:
Publicar un comentario