Einzelnen Beitrag anzeigen

Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 

Re: Zufallszahl ziehen ohne wiederholung

  Alt 6. Feb 2009, 22:50
1. Zuerst erstellst du ein array der Länge des Zahlenbereiches, aus dem die Zahlen kommen sollen
Delphi-Quellcode:
MyArray: array of integer;
...
SetLength(MyArray, 40);
2. Dann füllst du das array mit den Zahlen
Delphi-Quellcode:
for i := 0 to Length(MyArray) - 1 do
  MyArray[i] := i + 1;
3. Dann lässt du dir eine Zufallszahl generieren, die im Bereich der Länge des arrays liegt
rnd = random(Length(MyArray) - 1) 4. Die Zahl an MyArray[rnd] fügst du zum Ergebnis hinzu
5. Du kopierst das letzte Element deines arrays an die Stelle MyArray[rnd] und verkürzt das array um 1 (entspricht dem entfernen der gezogenen Zahl aus dem Zufallsraum)
Delphi-Quellcode:
MyArray[rnd] := MyArray[Length(MyArray) - 1];
SetLength(MyArray, Length(MyArray) - 1);
6. Widerhole 14 mal ab Punkt 3

hth.
  Mit Zitat antworten Zitat