Calculo de probabilidad

la lotería extrae de una esfera con los 100 números dentro 20 números, luego de otra esfera con los 100 números extrae otros 20 números , y luego de otra esfera extrae otros 20 números, que probabilidad tengo de acertar 15, 14 , 13 y 12 números(, mi boleto de lotería contiene 15 números sin repetir ) ok

1 respuesta

Respuesta
1

Primero calculamos la probabilidad de acertar n bolas de un bombo

P(n) = C(15, n)·C(80, 20-n) / C(100, 20)

Es lo mismo que el otro ejercicio que hice pero eligiendo tu 15 números en lugar de 8

Ahora habría que calcular todas las formas de obtener los quince aciertos entre los tres bombos. Aquí pongo las que habrá que acertar en cada bombo

(15, lo que sea, lo que sea)

(14, la que falta, lo que sea)

(14, lo que sea menos 1, la que falta)

(13, las dos que faltan, lo que sea)

(13, una que falta, otra que falta)

(13, ninguna de las 2 que faltan, las dos que faltan)

...

...

Es practicamente imposible hacer esas cuentas.

He hecho un pequeño programa de ordenador en Lazarus Pascal y he hecho una simulación de 100 millones de sorteos.

program bombos;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
{$R *.res}
Type bombo= array[0..99] of integer;
var bombo1, bombo2, bombo3: bombo;
function nfact(n:integer):integer;
var i:integer;
begin
nfact:= n;
for i:=n-1 downto 2 do nfact:=nfact*i;
end;
procedure DarVueltas(n:integer);
var i,j,k,m: integer;
begin
for i:=1 to n do
begin
j:= random(100);
k:= random(100);
m:=bombo1[j];
bombo1[j]:=bombo1[k];
bombo1[k]:=m;
j:= random(100);
k:= random(100);
m:=bombo2[j];
bombo2[j]:=bombo2[k];
bombo2[k]:=m;
j:= random(100);
k:= random(100);
m:=bombo3[j];
bombo3[j]:=bombo3[k];
bombo3[k]:=m;
end;
end;
var
i,j,k,m,veces,aciertos:integer;
resultados: array[0..15] of integer;
acertados: array[0..14] of boolean;
begin
randomize;
for i:= 0 to 99 do
begin
bombo1:= i;
bombo2:= 99-i;
bombo3:= 50+i;
if bombo3>=100 then dec(bombo3,100);
end;
DarVueltas(10000);
for i:=0 to 99 do writeln(bombo1:3,bombo2:3,bombo3:3);
for veces:=1 to 100000000 do
begin
DarVueltas(100);
aciertos:=0;
for i:=0 to 14 do acertados:= false;
for i:=0 to 19 do
begin
if (bombo1<=14) and not acertados[bombo1] then
begin
inc(aciertos,1);
acertados[bombo1]:=true;
end;
if (bombo2<=14) and not acertados[bombo2] then
begin
inc(aciertos,1);
acertados[bombo2]:=true;
end;
if (bombo3<=14) and not acertados[bombo3] then
begin
inc(aciertos,1);
acertados[bombo3]:=true;
end;
end;
inc(resultados[aciertos],1);
end;
for i:=0 to 15 do writeln(i:2,resultados:8);
readln;
readln;
readln;
end.

Los resultados que ha dado son estos:

 0 1757
1 32792
2 267917
3 1312480
4 4293989
5 9955548
6 16858677
7 21272040
8 20159675
9 14342570
10 7596518
11 2937132
12 805205
13 146928
14 15995
15 777

Como son 100.000.000 de sorteos la probabilidad se obtiene dividiendo por eso, se corre la coma 8 lugares a la izquierda. Si solo la corres 6 obtienes la probabilidad en %. Los resultados son bastante buenos porque son muchos y el sistema de volteado de los bombos es muy completo y lleva bastante tiempo, por eso no he hecho más.

Esto es lo que puedo mandarte de momento. De todas formas no creas que no me interesaría resolver el problema teóricamente y de forma exacta, aunque es muy difícil. Ad esto, puntúa esta pregunta y vuélvela a mandar por si puedo hacer algún avance, aunque no te garantizo nada. Tengo un par de ideas pero no se si llevarán a buen puerto.

Pues eso, no te olvides puntuar y mandarla de nuevo, entonces me pondré con otras formas de hacerlo o mejoraré esta para mayor exactitud.

Un saludo.

He mejorado algo el programa y lo he hecho para mil millones de sorteos y da esto:

 0 17954
1 325946
2 2678354
3 13113632
4 42913328
5 99466232
6 168604811
7 212768249
8 201646009
9 143417592
10 75955403
11 29399927
12 8049816
13 1474082
14 160737
15 7928

Recuerda que en este hay que correr 9 lugares la como para la probabilidad como número o 7 lugares para la probabilidad como %.

Por ejemplo, la de 15 la puedes expresar de estas 4 formas

0.000007928

0.0007928 %

7928 de mil millones

Aproximadamente 8 de un millón

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas