Sunteți pe pagina 1din 7

UNIVERSIDAD DE EL SALVADOR FACULTAD MULTIDISCIPLINARIA PARACENTRAL INGENIERIA DE SISTEMAS INFORMATICOS METODOS PROBABILISTICOS CICLO: II AO: 2009

EXAMEN PARCIAL #2

DOCENTE: LIC. ANA MARINA CONSTANZA.

ALUMNOS: MIRA, JOSE ANTONIO RODRIGUEZ CASTRO, OSIRIS

SAN VICENTE 11 DE DICIEMBRE DE 2009

EJERCICIO # 28

Una secretaria comete en promedio 2 errores mecanogrficos por pgina. Cul es la probabilidad de que en la siguiente pagina tenga 4 o ms errores? Y ningn error? SOLUCION: analizando el problema se identifico que es una distribucin de poisson siendo la siguiente formula.

(
As que de los datos tenemos lo siguiente: . .

( ( ( ( (

) ) ) ) )

[ [ ] ]

( ( (

) ) )

Codigo del programa

//Mira, Jose Antonio //Rodriguez Castro, Osiris

# include <stdio.h> # include <conio.h> # include <dos.h> # include <math.h> int factorial(int); main(){ int norm=1000, mult=241, suma=57,miu,x,op,i,fact=0,cont1=0,cont2=0,cont3=0,max; long int sem=0; float rnd,rndaux,aux2,e=2.718281828,cum=0,p,p1,prob1,prob2,prob3; long aux; clrscr(); printf("Digite el promedio de errores:\t"); especificamente cuando miu=2 y x=4. //El programa solo funcionara

scanf("%d",&miu); //Si se utilizan otros valores de x y miu (mientras x>miu) las probabilidades ser n mostradas correctamente printf ("Digite el valor de x:\t"); //pero las simulaciones no seran correctas, no se agrego la funcion de trabajar con scanf("%d",&x); //cualquier valor de miu o x debido a que el programa esta delimitado por el enunciado del problema printf("Digite la cantidad de ensayos:"); //sin embargo se puede introducir cualquier valor de miu y de x, con la finalidad de verificar que scanf("%d",&max); //las probabilidades mostradas en pantalla no son estaticas, sino que se utiliza la formula de poisson

for(i=0;i<x;i++){ //para cuando es mayor o igual fact=factorial(i);

p=((pow(e,-miu))*(pow(miu,i)))/fact; //formula de poisson para p(x>=4) cum=cum+p;

}//fin de for prob1=1-cum; printf("\n\nLa probabilidad de cometer 4 o mas errores es: %0.4f",prob1);

p=((pow(e,-miu))*(pow(miu,0)))/1; p1=((pow(e,-miu))*(pow(miu,1)))/1; prob2=(p1+p)-p;//formula de poisson para p(x=0) printf("\n\nLa probabilidad de cometer cero errores es: %0.4f",prob2);

p=((pow(e,-miu))*(pow(miu,2)))/2; p1=((pow(e,-miu))*(pow(miu,3)))/6; prob3=(p1+p)-p; //formula de poisson para p(x=2) printf("\n\nLa probabilidad de cometer dos errores es: %0.4f",prob3);

for(i=1;i<=max;i++){ sem=(((sem*mult)+suma)%norm); aux=sem; aux2=norm; rnd=aux/aux2;//generacion de numeros aleatorios

rndaux=((int)(rnd*100))/100.0; //truncamiento prob1=((int)(prob1*100))/100.0; prob2=((int)(prob2*100))/100.0; prob3=((int)(prob3*100))/100.0;

if((rndaux>0)&&(rndaux<=prob1)){ numero aleatorio generado cont1++; esto para determinar

//en estas lineas de codigo se compara el

//con los valores de las probabilidades obtenidas,

} //por medio de la simulacion con los numeros rnd cuantas veces cometio if((rndaux>prob1)&&(rndaux<=prob3)){//4 o mas errores, ningun error, y 2 errores de 500 ensayos. cont2++; } if((rndaux>prob2)){ cont3++; } }//fin for printf("\n\n\nCantidad de veces que cometi 4 o mas errores: %d\n",cont1); printf("\nCantidad de veces que no cometi errores: %d\n",cont2); printf("\nCantidad de veces cometi dos errores: %d",cont3);//en estas 3 lineas se muestran los resultados de la simulacion //que en teoria la sumatoria de cont1, cont2 y cont3 deberia ser igual a max getch(); //pero no es asi debido a que no se esta contemplando en la simulacion cuando la return 0; que solo p(x=0), p(x>=4) y p(x=2) //secretaria comete 1 o 3 errores, sino

int factorial(int num){ int i,j=1; for(i=1;i<=num;i++) { //aqui en esta parte s donde la funcion factorial calcula el factorial para los valores de x j=j*i; } return (j); }

Corrida del programa

S-ar putea să vă placă și