Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Frage zu Lottozahlengenerator

  Alt 1. Mai 2009, 13:53
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
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat