Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Keine doppelten Zufallszahlen mehr

  Alt 20. Jun 2005, 20:44
Was Du brauchst, ist eine zufällige Permutation der Folge 0 1 2 3 4 5 6 7 8 9.
Die Idee von WoGe ist also die Richtige.

Eine zufällige Permutation erzeugt man normalerweise so, in linearer Zeit (nach Fisher-Yates):
Delphi-Quellcode:
Const
 Count = 10;
Var
 A : Array[0..Count-1] of Integer;
 I, J, T : Integer;
begin
 For I := 0 to Count-1 do
  A[I] := I;
 For I := 0 to Count-1 do
 begin
  J := I+random(Count-I);
  T := A[J];
  A[J] := A[I];
  A[I] := T;
 end;
end
Der Code wurde von 'delfiPhan' in diesem Thread im delphi-forum gepostet.
http://www.delphi-forum.de/viewtopic...112&highlight=
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat