OK, hier mal die Erklärung:
Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
for i:= 1 to 49 do Zahlen[i]:=false;
for i:=1 to 6 do begin
repeat
z:=random(49)+1
until Zahlen[z] = false;
Zahlen[z]:=true;
end;
Edit1.Text:='';
for i:=1 to 49 do
if Zahlen[i] then memo1.Lines.add (Inttostr(i));
end;
Zahlen ist ein Array mit 49 Boolean-Elementen (also true oder false). In der ersten Zeile werden diese Elemente alle auf false gesetzt. Nun wird 6 mal Folgendes gemacht: es wird eine zufällige Zahl zwischen 1 und 49 gezogen. Dies wiederholt sich solange, bis das Array-Element an der gezogenen Position false ist. Im Anschluss daran wird dieses auf true gestellt. Ist dies 6 mal erfolgt, wird das Array erneut durchlaufen und die Position aller Elemente ausgegeben, an denen das jeweilige Element auf true steht. Das sieht dann etwa so aus:
Code:
//alle Elemente haben zu Beginn wohl einen zufälligen Wert
0111001101011001110011000010010000011010000111101
//nach der 1. Codezeile
0000000000000000000000000000000000000000000000000
//nach der 2. Schleife sind 6 zufällige Elemente auf true gesetzt
0010001000000100001100000000010000000000000000000
//in der letzten Schleife ergibt das dann folgende Lottozahlen
3 7 14 19 20 30