Calculo de probabilidad

te pido mil i disculpas pero hubo un error en lo que te mande, en ves de extraer 60 números son 80 los números que se extraen, y un numero extra, podes hacer algo??

1 respuesta

Respuesta
1

Si ahora me pondré. El problema es que el programa lo tengo que hacer en otro ordenador ya que en este no tengo instalado el Pascal. Y luego lo paso a este en un pendrive para hacer las cuentas ya que este es un poco más rápido en los cálculos.

De paso lo hago un poquito más general para que pueda usarse con pequeños cambios sin tener que volver a compilarlo.

Este es el programa modificado. No lo pondré en un lo que de texto pues esta visto que funciona mal y se come los saltos de línea, vaya página.

program bolas100;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
type
cien = array[0..99] of boolean;
const
CienFalsas:cien = (false, false, false, false, false, false, false, false, false, false,
False, false, false, false, false, false, false, false, false, false,
False, false, false, false, false, false, false, false, false, false,
False, false, false, false, false, false, false, false, false, false,
False, false, false, false, false, false, false, false, false, false,
False, false, false, false, false, false, false, false, false, false,
False, false, false, false, false, false, false, false, false, false,
False, false, false, false, false, false, false, false, false, false,
False, false, false, false, false, false, false, false, false, false,
false, false, false, false, false,false, false, false, false, false);
var
i, j, aciertos, ganadas, sacadas, bolas, bola, pronos, extraídas, tandas, sorteos, anteriores :integer;
Acertadas: cien;
begin
randomize;$
ganadas:=0;
Write('Numero de bolas: '); readln(bolas);$
Write('Números pronosticados: '); readln(pronos);
Write('Bolas extraídas: '); readln(extraídas);
Write('Tandas de sorteos: '); readln(tandas);
Write('Sorteos por tanda: '); readln (sorteos);
Ganadas := 0;
for i:= 1 to tandas do
begin
anteriores := ganadas;
for j:= 1 to sorteos do
begin
Acertadas:= CienFalsas;
Sacadas:=0;
Aciertos:=0;
While (aciertos < pronos) and (sacadas <= extraídas) do
begin
Bola:=random(bolas);
if (bola < pronos) and (not Acertadas[bola]) then
begin
Inc(Aciertos,1);
Acertadas[bola]:=true;
end;
Inc(sacadas,1)
end;
if aciertos = pronos then inc(ganadas,1);
end;
Writeln(ganadas - anteriores);
end;
writeln('Ganadas ',ganadas);
Writeln('Probabilidad: ',ganadas/(tandas*sorteos));
readln;
end.

Y los resultados han sido:

Numero de bolas: 100
Números pronosticados: 15
Bolas extraídas: 80
Tandas de sorteos: 10
Sorteos por tanda: 100000000
8490
8292
8584
8257
8492
8522
8441
8375
8429
8447
Ganadas 84329
Probabilidad: 8.43290000000000E-005

O sea la probabilidad de acertar 15 es 0.000084329

La de acertar 15 y el extra es 0.00000084329

Una de cada 1.185.832

Y eso es todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas