sábado, 5 de noviembre de 2011

Probabilidad binomial - Código C++

La distribución binomial, es una distribución de probabilidad discreta que calcula la probabilidad de la variable aleatoria $X$ en $N$ ensayos Bernoulli , con misma probabilidad $p$.

La función de probabilidad se expresa como,

$$ P(X) = Combinaciones(N, X)\cdot p^{X}\left( 1-p \right)^{N-X}$$

Si te encargaron realizar un código en C++ cuya finalidad es calcular esta probabilidad, te comparto el siguiente fuente,


#include <stdio.h>
#include <stdlib.h>
#include <math.h>


// Retorna el numero de combinaciones
double combinacion(int n,int m)
{ double res=1.0, i=1.0;
  if(m>(n-m))
  { while(i<=(n-m))
    {res=res*((m+i)/(i));  i++;  }// fin de while
  }// fin de if
  else // m<=(n-m)
  { while(i<=m)
    {res=res*((n-m+i)/(i));  i++; }// fin de while
  }// fin de else
  return(res);
}// fin de la funcion


// Retorna la probabilidad binomial
double getProbBin(int n, int r, double p)
{ double res=combinacion(n, r)*pow(p,r)*pow(1.0-p,n-r);
  return(res);
}//fin de funcion


// Main
int main()
{
  int n,r; double p;
  printf("\n Hallar la probabilidad binomial, \n Recuerda: n>=x  y  0<=p<=1\n");
  do{ printf("\n Teclee el valor de \"n\": "); scanf("%d",&n);
        printf("\n Teclee el valor de \"x\": "); scanf("%d",&r);
        if(n<r || n<0 || r<0) printf("\n !!!!!!!!!!!!!!!!!! Datos erroneos !!!!!!!!!!!!!!!!!! \n");
  }while(n<r || n<0 || r<0);
  do{ printf("\n Teclee la probabilidad de exitos: "); scanf("%lf",&p);
        if(p<0.0 || p>1.0) printf("\n !!!!!!!!!!!!!!!!!! Dato erroneo !!!!!!!!!!!!!!!!!! \n");
      }while(p<0.0 || p>1.0);
  p=getProbBin( n, r, p);
  printf("\n La probabilidad binomial es: %lf",p);


  return(0);
}// fin Main


Espero sea de ayuda.

Saludos - FaithHeart

1 comentario:

  1. quisiera saber como seria el codigo fuente para una distribucion de poisson

    ResponderEliminar