Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zufallsgenerator - Bereich festlegen (https://www.delphipraxis.net/598-zufallsgenerator-bereich-festlegen.html)

Traumzauberbaum 12. Aug 2002 09:46


Zufallsgenerator - Bereich festlegen
 
Mahlzeit :hello:

hat jemand nen plan, wie ich dem zufallsgenerator (random) sagen kann, dass der nich von 0 bis sonstwohin generieren soll, sondern dass er bei einem bestimmten wert anfängt, also nich schon bei null?

Tpercon 12. Aug 2002 09:55

Einfach den Anfangswert nachher dazu addieren!

sakura 12. Aug 2002 11:44

Das Ganze im Code:

Code:
function Zufallszahl(Von, Bis: Integer): Integer;
begin
  Result := Random(Succ(Bis - Von)) + Von;
end;

MrSpock 12. Aug 2002 12:52

Als Ergänzung zum Code von sakura:

Die Funktion liefert Zufallszahlen in dem Bereich

[von..bis[

oder

von <= x < bis.

sakura 12. Aug 2002 13:36

Zitat:

Zitat von MrSpock
Als Ergänzung zum Code von sakura:

Die Funktion liefert Zufallszahlen in dem Bereich

[von..bis[

oder

von <= x < bis.

Ich muss Dich enttäuschen. Der Bereich ist

[von..bis]

oder

von <= x <= bis

MrSpock 12. Aug 2002 16:44

Hallo Sakura,

aber da bin ich doch nicht enttäuscht. Das ist doch super :hello: . Da hab ich halt Bullshit (mal gucken, ob dieser Begriff automatisch wegzensiert wird) geschrieben. Und außerdem: was interessiert mich mein Geschwätz von heute morgen :mrgreen: .

Marc_Z 18. Aug 2002 10:44

Funktion bei Delphi 6.0
 
Hi,

ich habe mal nachgeguckt, ab der Version Delphi 6.0 gibt es eine
Funktion, mit der du den Bereich der Zufallszahlen eingrenzen kannst!
Dafür musst du aber noch die Unit "Math" einbinden!

Hier einmal die Syntax und die Erklärung!

Code:
function RandomRange(const AFrom, ATo: Integer): Integer;
Beschreibung:

RandomRange gibt einen zufälligen Integer-Wert im Bereich von AFrom bis ATo zurück (inklusive). RandomRange funktioniert auch mit negativen Bereichen (wenn AFrom größer als ATo ist).

Um den Zufallszahlengenerator zu initialisieren, müssen Sie vor dem Aufruf von RandomRange die Prozedur Randomize aufrufen oder der Variable RandSeed einen Wert zuweisen.


:bounce1:

Gruß Marc

RomanK 18. Aug 2002 10:57

Das geht auch mit Random:
Code:
var
Start,Stop,Zuf:Integer;
begin
Zuf := Random(Stop-Start)+Start;
Sorry bei mir würde nur der letze Post angezeigt :shock: :nerd:

hm988 22. Dez 2002 10:57

Hi,
hab das mit dem Randomize gerade auch ausprobiert, krieg ich auch hin aber wie bringe ich es jetzt fertig dass ich nicht zweimal die selben zahlen bekomme bevor alle oder die meisten zahlen im random schon dran wahren :?: :?

sakura 22. Dez 2002 11:32

Du darfst Randomize nur ein einziges Mal aufrufen.

Mechanismus: Randomize setzt die Variable RandSeed auf einen Startwert abhängig von der aktuellen Systemzeit. Diese Zeit wird durch einen internen Zähler des Computers alle 18 Millisekunden geändert, dass heisst, solange sich die Zeit, zumindest für den Computer, nicht geändert hat, wird durch Randomize die Variable RandSeed immer wieder auf den gleichen Startwert gesetzt. RandSeed wird zum Ermitteln der Zufallszahl genutzt. Da RandSeed sich aber nicht ändert, durch stetes Reset durch Randomize, bekommst Du mehrmals die gleiche "Zufallszahl".

Kurz: Randomize nur einmalig zum Programmstart aufrufen. Und schon klappts.

[edit]Danke Christian, da war natürlich ein Fehlerchen[/edit]
(Siehe: http://www.delphipraxis.net/viewtopi...asc&highlight=)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 Uhr.
Seite 1 von 3  1 23      

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