Einzelnen Beitrag anzeigen

FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#15

AW: Effiziente Erzeugung, nicht gleicher Zufallszahlen

  Alt 11. Mai 2011, 06:48
Im Zweifel Googel fragen:
Zitat von Wikipedia.com:
To shuffle an array a of n elements (indexes 0..n-1):
Code:
  for i from n - 1 downto 1 do
       j <- random integer with 0 <= j <= i
       exchange a[j] and a[i]
Ich verändere i und j nicht, sondern verschiebe beim Vertausch die beiden Indexe nur um den Offset 'Low(A)'. Dann ergibt sich folgende Lösung:
Delphi-Quellcode:
For i := Length(A)-1 downto 0 do
begin
  j := Random (i + 1); // 0 <= j <= i
  Swap(i + Low(A), j + Low(A));
end;
Das Bild hängt schief.
  Mit Zitat antworten Zitat