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.