![]() |
Random-Frage
Hi
Ich habe eine Frage zu random.
Delphi-Quellcode:
bedeutet das er zufällig eine folgender Zahlen auswählt:
random(5);
0;1;2;3;4 ist es möglich, a) dass man irgendwie eine Zahlenspanne vorgibt, also dass man sagen kann, bitte eine zufällige Zahl zwischen 2 und 5(und nicht nur zwischen null und 5) --- Und damit meine ich nicht den Trick das man einfach: random(3) + 2 schreibt) b) kann man ausnahmen hinzufügen? z.B. random(5) ausser 3? MfG Spiderpig |
Re: Random-Frage
Ja kann man, guck mal in der Code lib.
|
Re: Random-Frage
Zitat:
zu b) nein GG |
Re: Random-Frage
zu a) Ist ja eigentlich egal, es gibt ja diese möglichkeit
zu b) schade :cry: :cry: aber vielleicht hat ja jemand eine Idee wie man das trotzdem machen kann ohne zuu viel aufwand |
Re: Random-Frage
zu b) kannst du einfach einen Array mit den Zahlen die du auswählen willst zum Beispiel
1,3,4,5 und dann zufällig einer von diesen mit random(4) auswählen --> so mache ich es immer :zwinker: |
Re: Random-Frage
Hi,
- einfachste Lösung: neue Zufallszahl suchen bis die Ausnahme nicht mehr gilt (Achtung: wenn "zufällig" immer wieder diese Zahl kommt, kann dies sehr lange dauern.) - andere Lösung: Ein Array nehmen, in dem nur die erlaubten Zahlen drin stehen, und Zugriff über Index. Mfg FAlter |
Re: Random-Frage
klar, kannst 'ne kleine abfrage machen und wenn die zahl drin ist, ggf. wieder holen oder du schiebst dir die zahlen in ne liste, wirfst raus, was du nicht brauchst und generierst mit random den index auf die liste.
kannst ja ![]() |
Re: Random-Frage
Danke :dp:
Wenn noch andere Leute wissen wollen wie man es machen kann, hier hab ich den Code dafür, ich find so ist es am einfachsten:
Delphi-Quellcode:
und schon hat man zwei Variablen i und k die mit verschiedenen Zufallszahlen zwischen null und 9 versehen sind :)
i:=random(10);
repeat k:=random(10); until k <> i; |
Re: Random-Frage
und hier ne function
Code:
Wäre vlt. was für die Code-Library ? hehe
function Random(rFrom, rTo: Integer; const rWithOut: Array of Integer ): Integer; overload;
var i: Integer; nFlag: Boolean; begin repeat nFLag := True; Result := system.Random( rTo - rFrom + 1 ) + rFrom; for i:= low(rWithOut) to high(rWithOut) do if Result = integer(rWithOut[i]) then begin nFlag := False; break; end; until nFlag; end; // evt. Auruf: random( 3, 5, [1,2,3,4] ) ); :wink: |
Re: Random-Frage
oder man nutzt gleich dieses hier:
Zitat:
Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 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