viernes, 18 de junio de 2010

Distribución Binomial

Bueno, como algunos ya saben la distribución binomial calcula la probabilidad de obtener "k" éxitos en una sucesión de n ensayos Bernoulli independientes entre sí y todos con una probabilidad "p" de éxito y de q=1-p de fracaso, aqui les dejo un código para java que hice que calcula
P(X=k)
P(X<=k)
P(X>=k)
obviamente con una "n" y una "p" dadas por el usuario al inicio


import java.util.*;
public class Binomial
{

public static double facrec(int n)
{
if (n==0)
return 1;
else
return n*facrec(n-1);
}
public static double coeficiente(int n, int k)
{

double resp;
resp=facrec(n)/(facrec(k)*facrec(n-k));
return resp;

}
public static double fmp(int n, double p,int k)
{
double resp;
resp=1;

resp=coeficiente(n,k)*Math.pow(p,k)*Math.pow(1-p,n-k);
return resp;
}
public static double complemento(int n, double p, int x)
{
double resp;
resp=1-fpa(n,p,x-1);
return resp;
}
public static double fpa(int n, double p, int x)
{
int i;
double resp;
resp=0;
for (i=0;i<=x;i=i+1)
{
resp=resp+fmp(n,p,i);
}
return resp;
}
public static void main(String[] args)
{
Scanner lee;
lee = new Scanner(System.in);
double p,prob,prob1;
int n,k,m,k1;
System.out.println("Dame la n y la p");

n=lee.nextInt();
p=lee.nextDouble();
System.out.println("Dame m para calcular P(X=m)");
m=lee.nextInt();
prob =fmp(n,p,m);

System.out.println(prob);
System.out.println("Dame la k para calcuar P(X<=k)");
k=lee.nextInt();
prob1=fpa(n,p,k);
System.out.println(prob1);

System.out.println("Dame una k para calcular P(X>=k)");
k1=lee.nextInt();
System.out.println(complemento(n,p,k1));


}
}

1 comentario: