![]() |
Zufallszahlen ohne Doppelte
Hallo,
ich habe bereits einen Code im Internet gefunden, der mir Zufallszahlen ohne Doppelte liefert. Allerdings habe ich mir die Seite wo ich den Code gefunden hatte nicht gemerkt... Ich würde gerne wissen wie genau der folgende Code funktioniert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var A : Array[0..100] of Integer; I, J, T, Count : Integer; begin Count := strtoint(edit1.text); 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; Wie gesagt: Funktionieren tut er perfekt, aber ich würde gerne wissen, wie er funktioniert (dass keine doppelten Zahlen erscheinen) ;) Ich hoffe es kann mir jemand "erklären" :) |
Re: Zufallszahlen ohne Doppelte
In der ersten For-Schleife wird das Array mit allen Zahlen befüllt.
Danach wird in der 2. Schleife für jeden Wert ein zufälliger anderer Wert gefunden, der immer im Array hinter dem ersten Wert liegt, und die beiden Werte werden vertauscht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz