Académique Documents
Professionnel Documents
Culture Documents
LABORATORIO 1
INTEGRANTE:
1. Johann Pez
2. Conteo y Muestreo
El propsito del conteo en la teora de probabilidades es determinar la cantidad de posibilidades que
un experimento pueda suceder. Por ejemplo, en 42 nmeros de la lotera, existen 5245768 maneras
del estado elegir 6 nmeros ganadores aleatorios de los 42. Probaremos eso.
Si lo piensas, el estado saca un pequeo pedazo de plstico etiquetados con nmeros. Esto
es, el estado usa nmeros enteros como cdigo para los objetos del experimento. Esto es una
manera de conveniencia. Hasta los equipos de futbol utilizan nmeros en las camisas para codificar
los participantes humanos. Como veremos, la codificacin de enteros a objetos en un experimento
simplifica la descripcin. No importara si los objetos son personas o cartas de juego.
Debido a que existe un juego para ilustrar a cada principio de conteo, podemos estudiar las
formulas clsicas de conteo estudiando juegos.
3. Lotto
Lotto es un juego donde cada jugador elije K nmeros nicos de N posibles nmeros hasta que el
estado cierre el juego. A ese punto, el estado elije sus propios K nmeros nicos y paga a cada
jugador basado en el nmero correcto de coincidencias numricas.
En un caso hipottico del juego Lotto, dejemos que N=42 nmeros posibles. Cada jugador
(y tambin el estado) elijen K=6 nmeros. Esto significa que hay
posibles casos de
elegir 6 nmeros de 42. Por lo tanto las probabilidades de acertar los 6 nmeros son de 5245786 a 1.
Pero que dicen las probabilidades de acertar 4 nmeros. Para ver eso, rompa los 42 posibles
nmeros en conjuntos deseados de 6 nmeros y no deseados de 36 nmeros. Si el jugador acierta 4
de los nmeros deseados, entonces el jugador tambin acierta 2 nmeros del conjunto no deseado.
Por lo tanto, el nmero total de combinaciones de 4 nmeros deseados y 2 no deseados es
. Esto significa que las probabilidades de acertar exactamente 4 nmeros son 5245786 a 9450,
que es aproximadamente 555 a 1. En general esto es
Hay dos funciones que necesitas crear para simular el juego del Lotto. La primera, llamada
lotto_game.m, debe jugarse el Lotto con M jugadores y retornar los nmeros que saco el estado ms
los sacados por los jugadores con sus respectivas coincidencias numricas. Para usar esa funcin,
debes definir 3 valores: N=total de posibles nmeros, k=cantidad de nmeros sacados por cada
jugador y M=nmero de jugadores. Por ejemplo si escribes
lotto_game(42,6,5)
El resultado podra ser
State =
35 2 25 41 12 37
Player_data =
5 3 12 40 4 14 1
42 9 21 13 29 40 0
33 28 6 4 1 14 0
35 42 1 33 25 22 2
11 35 12 32 28 8 2
En la matriz player_data, la ltima columna contiene los nmeros de coincidencias que el jugador
consigui. La segunda funcin a crear es lotto_histo.m, lo que juega el Lotto con M jugadores y
grafica la medida y la estadstica terica del juego. Para verlo, debes escribir lo siguiente:
[est_pmf act_pmf] = lotto_histo(42,6,10)
4. Keno
Keno es similar al Lotto en cambio el jugador elige K nmeros de N posibles nmeros y el jugador
le pagan basado en aciertos de k nmeros. Sin embargo en Keno, el estado saca
numeros. Tal
juego se refiere como (N,n,K) del juego Keno. La probabilidad de sacar k coincidencias en (N,n,K)
juego de Keno es
Donde
es el numero de formas que el jugador puede coincidir k nmeros deseados,
es el
numero de formas que el jugador puede coincidir K-k nmeros indeseados y
es el total de
formas que el jugador pueda elegir K nmeros de N posibles nmeros.
4.1 Asignacin
5. Carreras de Caballos
En una carrera de 12 caballos, hay 12! = 479001600 posibles formas que los caballos pueden
terminar la carrera, acertando las 12 posiciones sera un gran tiro. Sin embargo solo
(12)(11)(10)=(12)3 =1320 formas para ordenar el primero, segundo y tercero que terminaran.
Atinando los 3 primeros caballos en orden se conoce como trifecta.
5.1 Asignacin
Una trifecta box apuesta que permite el jugador elegir los 3 primeros caballos sin
especificar el orden. Esa apuesta cuesta 6 veces ms de la trifecta regular. Porque? Cuantas
posibles formas se puede hacer una trifecta box?
0.371
0.431
0.168
0.027
0.0018
0.000041
0.00000019
end
A(i,k+1)=aux;
end
Z=A;
return
b)
function [mesu teo]=lotto_histo(N,k,M)
[Z,W]=lotto_game(N,k,M);
aux2=(factorial(42))/((factorial(6))*(factorial(42-6)));
for i=1:7
aux1=(factorial(6))/((factorial(i-1))*(factorial(6-i+1)));
aux3=(factorial(36))/((factorial(6-i+1))*(factorial(36-6+i-1)));
teo(i)=(aux1*aux3)/(aux2);
end
mesu=(Z(:,k+1))';
subplot(3,1,1)
hist(mesu,0:k)
title('Aciertos de cada nmero');
subplot(3,1,2)
bar(teo)
set(gca,'xticklabel',{'0','1','2','3','4','5','6'});
title('Valores tericos de probabilidad');
c)
function [X]=pick_nums(A,B)
%A es el vector con los numeros ejm (1:40) y B cuantos numeros se
elegirn
[m,p]=size(A);
n=B;
aux1=max(max(A));
aux2=min(min(A))-1;
if(p<n)
display('No puede retirar mas numeros de los existentes')
X='ERROR';
return
else
numeros=randperm(aux1-aux2:aux1)+aux2;
X=numeros(1:B);
end
return
d)
function [Y]=count_matches(State,player)
%State es el vector con los numeros ganadores
%player son los numeros elegidos por los jugadores
[m,n]=size(State);
[p,q]=size(player);
contador=0;
for i=1:n
for j=1:q
if(State(i)==player(j))
contador=contador+1;
end
end
end
Y=contador;
return
Explicacin.- El programa es vlido para otros N, k y M que se quieran elegir, lo primero que hace
es validar los valores ingresados verificando que no puedan extraerse ms nmeros de los que ya
existen, luego llamamos la funcin pick_nums para que nos entregue un vector con los nmeros
del estado y asignamos a una variable W. Creamos un bucle para que se puedan generar ms
formaciones de nmeros aleatorios que serian los nmeros de los jugadores, este ciclo se repite
tantas veces existan jugadores por jugar. Adentro de ese mismo ciclo automticamente llamamos a
count_matches para verificar si los nmeros generados al jugador coinciden con los del estado y
nos regresa un nuevo vector agregado a la ltima posicin la cantidad de aciertos de ese jugador.
Por ltimo agregamos todos los vectores generados de cada jugador a una matriz para poder
proceder a la impresin de los datos. Ejm:
Tambin se programo el cdigo lotto_histo que sirve para realizar el proceso de lotto_game
y realizar un histograma de su resultado. Para graficar el mtodo terico se program la frmula
Y para los valores medidos simplemente se utiliz la ltima columna del count_matches para
obtener la cantidad de aciertos probables. Ejm:
>> lotto_histo(42,6,5)
Comprobacin de hiptesis.- con los programas realizados comprobaremos la hiptesis, pero para
eso necesitaremos tomar un gran nmero de jugadores para poder acercarse ms al valor esperado.
En este caso tomaremos los valores del histograma y calcularemos sus probabilidades.
Experimento con 50000 jugadores tomando 6 nmeros de 42 en total.
0.371306
0.431194
0.168435
0.027222
0.001801
0.000041
0.00000019
Y las probabilidades medidas son cuando se uso un experimento con 50000 jugadores:
Coincidencias
Probabilidad
de suceso
medido
Se requiere saber que probabilidad se tiene al intentar jugar el Keno cuando existen 60 nmeros
posibles de los cuales el estado tomar 20 y los jugadores elegirn 10. Utilizando la formula:
tenemos
Coincidencias
Probabilidad
de suceso
Coincidencias
Probabilidad
de suceso
0.0112431
0.0725359
0.193806998
0.281901
0.24666345
0.13531252
10
0.0469835
0.010158598
0.00130324
0.00008911
0.00000245
El programa del Keno y del Lotto solo se diferencia que ya no existe un nmero de jugadores en el
Keno para ese programa y que el estado elegir ms nmeros que el jugador para que este tenga
ms chances de ganar. Lo que se realiza en el programa del Keno para adaptar al Lotto es
OPCIONAL KENO
Para poder retornar valores aceptables para comprobar la hiptesis de las probabilidades en el juego
del Keno es necesario que este se adapte para poder utilizar muchas iteraciones de juego y as poder
tener un clculo base. Tenemos los siguientes programas.
a)
function [Z,W]=keno_game(N,n,k)
if(N<k)
display('La cantidad de numeros a elegir supera a los existentes no
es posible')
Z='ERROR';
return
end
if(n<k)
display('El estado debe elegir siempre mas numeros que el jugador')
Z='ERROR';
return
end
Z=pick_nums(1:N,n);
for i=1:50000
player=pick_nums(1:N,k);
aux=count_matches(Z,player);
for j=1:k
A(i,j)=player(j);
end
A(i,k+1)=aux;
end
W=A;
return
b)
function [mesu teo]=keno_histo(N,n,K)
[W,Z]=keno_game(N,n,K);
aux2=(factorial(60))/((factorial(10))*(factorial(60-10)));
for i=1:K+1
aux1=(factorial(20))/((factorial(i-1))*(factorial(20-i+1)));
aux3=(factorial(40))/((factorial(K-i+1))*(factorial(40-K+i-1)));
teo(i)=(aux1*aux3)/(aux2);
end
mesu=(Z(:,K+1))';
subplot(3,1,1)
hist(mesu,0:K)
title('Nmero de aciertos');
subplot(3,1,2)
bar(teo)
set(gca,'xticklabel',{'0','1','2','3','4','5','6','7','8','9','10'});
title('Valores tericos de probabilidad');
Explicacin.- El programa es vlido para otros N, n y K que se quieran elegir, lo primero que hace
es validar los valores ingresados verificando que no puedan extraerse ms nmeros de los que
existen, lo segundo es validar que el estado saque siempre ms nmeros que el jugador, luego se
repite el proceso del programa del Lotto llamando las funciones de pick_nums para poder ingresar
a un vector los nmeros del estado y luego adentro de un bucle hacemos el mismo procedimiento
pero utilizando la funcin pick_nums para obtener ms nmeros que el estado y luego verificando
cuantos aciertos se tiene con la funcin count_matches esto se encontrar adentro del bucle para
poder repetir ese procedimiento varias veces simulando varios juegos (el valor 50000 en el for
indica las iteraciones), despus se ingresa a un vector auxiliar A los nmeros del jugador y
agregando a la ltima columna el nmero de aciertos con respecto al estado, por ltimo se genera
una matriz con los valores obtenidos en cada juego y sus aciertos. Si llamamos a la funcin
keno_histo igualmente realizar el mismo procedimiento que el de lotto_histo ahora
implementando la siguiente frmula en matlab:
Y luego con los comandos hist y bar se grafican los valores medidos y tericos.
Ejm: Keno game con 10 iteraciones:
veces para simular 50000 diferentes juegos, as teniendo ya una aproximacin ms exacta de los
valores probabilsticos tericos.
Se requiere comprobar cuntos posibles casos se puede tener cuando se realiza una trifecta box y
que probabilidad es que se gane con una apuesta de esas. Si existen 12 caballos que se pueden
formar de 12! Maneras diferentes tenemos 479001600 posibilidades pero en una trifecta box
tenemos:
Elegimos los 3 primeros caballos sin importar el orden y obtenemos que existen 220 maneras
diferentes de ordenarlos. Ahora si la trifecta son
maneras de ordenar y cuesta un
valor X. Podemos comprobar que la trifecta box debera valer 6 veces ms debido a que es
exactamente 6 veces ms probable de ganar segn la siguiente relacin:
Este programa simular las carreras de caballos y un jugador que elije aleatoriamente 3 caballos
ganadores en orden, y se comparar con otro vector que tiene los 3 caballos vencedores.
function trifecta_game(A)
victorias=0;
perdidas=0;
if(A<500)
display=('Ingresar una mayor cantidad de carreras >500')
X='Error';
return
end
for i=1:A
carrera=pick_nums(1:12,3);
ticket=pick_nums(1:12,3);
if(carrera(1)==ticket(1)&&carrera(2)==ticket(2)&&carrera(3)==ticket(3))
victorias=victorias+1;
else
perdidas=perdidas+1;
end
end
Resultado=[victorias perdidas];
bar(Resultado)
set(gca,'xticklabel',{'Victorias','Derrotas'});
fprintf('La probabilidad de ganar es de %d en %d\n',victorias,A)
return
Este programa simular las carreras de caballos y un jugador que elije aleatoriamente 3 caballos
ganadores sin importar el orden, y se comparar con otro vector que tiene los 3 caballos vencedores.
function trifectabox_game(A)
victorias=0;
perdidas=0;
if(A<500)
display=('Ingresar una mayor cantidad de carreras >200')
X='Error';
return
end
for i=1:A
carrera=pick_nums(1:12,3);
ticket=pick_nums(1:12,3);
contador=count_matches(carrera,ticket);
if(contador==3)
victorias=victorias+1;
else
perdidas=perdidas+1;
end
end
Resultado=[victorias perdidas];
bar(Resultado)
set(gca,'xticklabel',{'Victorias','Derrotas'});
fprintf('La probabilidad de ganar es de %d en %d\n',victorias,A)
return
agregando ese valor de coincidencias a una variable auxiliar contador si esa variable es 3 significa
que encontr 3 aciertos es decir gano por lo tanto entra a la sentencia if y aade una victoria a la
variable victorias caso contrario se aade una derrota a la variable perdidas, al final asignamos a
otro vector los valores de victorias y derrotas para poder utilizar la funcin bar para graficar el
resultado, para terminar se imprime en pantalla la probabilidad de victoria.
= 4.69*10-3
= 4.03*10-3
= 4.47*10-3
= 4.518*10-3
7. Conclusin
Las ideas de conteo que fueron explorados en este laboratorio se extienden en muchos otros casos.
Alguna de estas incluye (pero no estn limitadas a) sedes de comit, votaciones, cumpleaos iguales,
juego de cartas y cualquier juego virtual que puedas apostar. Estos mtodos para calcular
probabilidades pueden ser usados para explicar porque los casinos se vuelven ms ricos y los
apostadores ms pobres. Por ejemplo, la probabilidad de acertar 8 nmeros en (60,20,10) del juego
Keno es casi 768 a 1, lo que significa que 1$ que vale el ticket del Keno, debera pagar 768$ para
ganar. En la realidad solo te pagaran 100$ lo que significa que mismo que ganaras 99$, no ests
siendo pago debidamente por el risco que corres!