Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
|
Re: Zufalsgenerator - Zahlen auslassen ?
20. Okt 2004, 12:29
Jaja, ziehe zufällig Zahlen aus 1 bis 10 ohne zurücklegen, das Thema hatten wir schon merhmals, es nennt sich Lotto-Ziehungen.
http://www.delphipraxis.net/internal...ct.php?t=10946
Delphi-Quellcode:
type
TZahlen = array of Integer;
procedure Lotto( var Sortiert,Gezogene: TZahlen; Ziehungen: Integer = 6; Elemente: Integer = 49);
var
I,J,K,N: Integer;
begin
Sortiert := nil; // stellt sicher das Sortiert <> Gezogene ist
Gezogene := nil;
if Ziehungen > Elemente then
raise Exception.Create(' Man kann nicht mehr Kugeln ziehen als in der Urne sind');
SetLength(Sortiert, Ziehungen);
SetLength(Gezogene, Ziehungen);
for I := 0 to Ziehungen -1 do
begin
K := 0;
N := Random(Elemente - I) + 1;
for J := 0 to I -1 do
if N >= Sortiert[J] then
begin
Inc(N);
Inc(K);
end else Break;
for J := I downto K +1 do
Sortiert[J] := Sortiert[J -1];
Sortiert[K] := N;
Gezogene[I] := N;
end;
end;
procedure Test;
procedure Print( const Title: String; const Zahlen: TZahlen);
var
I: Integer;
begin
Write(Title);
for I := 0 to High(Zahlen) do Write(Zahlen[I]:4);
WriteLn;
end;
var
Sortiert,Gezogene: TZahlen;
begin
Lotto(Sortiert, Gezogene, 10, 10);
Print(' gezogene : ', Gezogene);
Print(' sortiert : ', Sortiert);
WriteLn;
end;
Gruß hagen
|
|
Zitat
|