Beruflich Dokumente
Kultur Dokumente
\
|
=
|
|
.
|
\
|
=
proba
apuesta
apuesta
proba
*
1
anancia g
Finalmente se realizar el juego para indicar el resultado al usuario. Para esto se
utilizar la funcin llamada bernoulli(), del objeto nombrado apuesta, la cual recibe
como parmetro la probabilidad de xito que se tiene en una repeticin y regresa un
dato booleano (true, false). Regresa true con una probabilidad igual a la que se tiene
con el nombre exito.
Ej: Si exito = 3, entonces una de cada tres veces que se llame a la funcin, sta regresar True.
NOTA: El valor que recibe la funcin como parmetro es el valor de exito y no la
cantidad de xitos.
Esta funcin simplemente es una repeticin de las n veces que se quiere realizar el
juego, esto es lo que constituye una funcin de densidad Bernoulli, mientras que la
Binomial es la repeticin de n veces la Bernoulli.
Esto quiere decir que por medio de un ciclo se tiene que realizar n veces la funcin
y contar cuntas veces el valor es True, lo que es lo mismo que determinar cuantas
veces se tiene un xito como resultado.
Al finalizar se muestra la cantidad de xitos que se tuvieron y si es igual a la
esperada por el usuario ganar la cantidad que se le indic, en otro caso no ganar
nada.
Como se indic al inicio del desarrollo, en la seccin de Informacin adicional de
esta prctica se encuentra un ejemplo de cmo se podra ver la secuencia del
programa. Esto te puede ayudar a entender algunas descripciones que no hayan
quedado claros en la explicacin.
Prcticas el curso de Programacin I Prctica 3
En la Facultad de Ciencias de la UNAM
Trabajo adicional
Otra tarea que se realiza fcilmente es calcular el valor esperado del ejercicio y
mostrrselo al usuario. Se conoce que el valor esperado de una Bernoulli (E(x)) es:
( ) p n x E * =
con n=repeticiones
p=probabilidad de xito
Por definicin, el valor esperado es
( ) ( )
=
= =
n
i
i x P i x E
0
*
donde P(x=i) es la probabilidad de que x sea igual a i;
la cual se obtiene con la funcin Binomial(i) del
objeto apuesta
Esto es:
( ) ( ) ) ( * ... ) 1 ( * 1 0 * 0 n Binomial n Binomial Binomial x E + + + =
Con esta informacin podrs completar tu programa para que, adems de mostrar la
probabilidad de xito de la apuesta del usuario, muestre cual es el valor esperado
del juego que se piensa realizar.
Prcticas el curso de Programacin I Prctica 3
En la Facultad de Ciencias de la UNAM
Informacin adicional
- A continuacin se muestra una ejecucin del programa. Algo similar a lo que se
espera que puedas obtener como resultado.
En este caso se selecciona jugar un volado con dos tiros o repeticiones.
Se apuesta por el valor 1(slo existe 1 o 2)
Se espera que de las dos repeticiones slo en una de ellas el resultado sea 1.
Se apuestan 100, por lo que en caso de ganar se obtendrn 200.
Los siguientes resultados varan de corrida a corrida. Para este caso de las dos
repeticiones hubo un solo xito, as que el resultado de la apuesta es favorable.
Prcticas el curso de Programacin I Prctica 3
En la Facultad de Ciencias de la UNAM
- Recuerda Compilar la clase Probabilidad que se presenta a continuacin.
-----------------------------------------------------------------------------------------------
/**
* Probabilidad.java
* @author Erick Santillan
* @version Marzo 2010
*/
import java.lang.Math;
public class Probabilidad{
private double exito;
private int repeticiones;
public Probabilidad(double exito, int repeticiones){
this.exito=exito;
this.repeticiones=repeticiones;
}
public double binomial(int cantidad){
double proba=0;
if(cantidad>repeticiones||cantidad<0){
System.out.println("Cantidad de exitos no especificada correctamente");
}else{
double cant1= (double)factorial(repeticiones);
double cant2= (double)factorial(cantidad);
double cant3= (double)factorial(repeticiones-cantidad);
double combinaciones= (cant1/(cant2*cant3));
proba=Math.pow(exito,cantidad);
proba=proba*(Math.pow(1-xito, repeticiones-cantidad));
proba=proba*combinaciones;
}
return proba;
}
public int factorial(int num){
if(num==1||num==0)
return 1;
else
return factorial(num-1)*num;
}
public boolean bernoulli(int apuesta){
double aleatorio = Math.random();
double limiteInf = exito*((double)apuesta-1);
double limiteSup = exito*((double)apuesta);
boolean resultado=false;
if(aleatorio<limiteSup && aleatorio>limiteInf)
resultado=true;
return resultado;
}
}
----------------------------------------------------------------------------------------------------------------------------------
Prcticas el curso de Programacin I Prctica 3
En la Facultad de Ciencias de la UNAM
Prcticas el curso de Programacin I Prctica 3
En la Facultad de Ciencias de la UNAM
Prcticas el curso de Programacin I Prctica 3
En la Facultad de Ciencias de la UNAM
- Mas informacin sobre estos y otros temas de Probabilidad (como la que se muestra
a continuacin) la podrs encontrar en:
Ross, S. (2010)Introduction to Probability Models. 10
ma
edicin. Elsevier:
Burlington MA.
Variable aleatoria Bernoulli
Suponemos que se realiza un experimento que puede se clasificado como xito o
fracaso. Si x es igual a 1 para el xito, e igual a 0 para el fracaso, entonces la
funcin de densidad es:
( ) | |
( ) | | p X p p
p X p p
= = =
= = =
1 1
1 0 0
Donde p, 1 0 s s p , es la probabilidad que el experimento sea un xito.
Variable aleatoria Binomial
Suponemos que se realizarn n intentos independientes, cada uno con una
probabilidad de xito de p y probabilidad de fracaso de 1-p. Si X representa el
nmero de xitos en los n intentos, entonces se dice que X es una variable aleatoria
Binomial con parmetros (n, p).
La funcin de densidad de una variable aleatoria Binomial con parmetros (n, p) es:
( ) ( )
i n i
p p
p
n
i p
|
|
.
|
\
|
= 1 , i =0,1,,n
Donde
( ) )! ( !
!
i i n
n
i
n
=
|
|
.
|
\
|
es la cantidad de grupos diferentes de i objetos que
pueden ser elegidos de un conjunto de n objetos.
Grfica de la Distribucin Binomial
0
0.05
0.1
0.15
0.2
0.25
0 5 10 15 20 25 30 35 40
p=0.5, n=20 p=0.7, n=20 p=0.5, n=40
Grfica 4.1. Muestra la forma de la variable aleatoria para diferentes parmetros.