![]() |
Zufälliger Integer-Wert zwischen zwei zahlen
Hi mir ist diese frage etwas peinlich:
Wie kann man einen zufälligen integer wert inerhalb von zwei zahlen erstllen? |
Re: Zufälliger Integer-Wert zwischen zwei zahlen
z.b. so :)
Delphi-Quellcode:
Randomize;
a := Random(maximum) + minimum; |
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Zitat:
Delphi-Quellcode:
Random(Succ(High-Low)) + Low;
|
Re: Zufälliger Integer-Wert zwischen zwei zahlen
ne das klappt nich so recht:
Delphi-Quellcode:
da kommen werte über hundert raus!
Randomize;
a := Random(100) + 80; |
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Hallo,
Code:
liefert Dir Zufallszahlen von [10 bis 20]
Random(11)+10
[edit]siehe Stevie[/edit] |
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Delphi-Quellcode:
function Rand(RandFrom, RandTo: integer): integer;
begin if RandTo > RandFrom then begin Randomize; Repeat Result := Random(RandTo); until Result > RandFrom-1; end else Result := 0; end; kannste dann aufrufen mit:
Delphi-Quellcode:
Var := Rand(minimum, maximum);
|
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Danke
Delphi-Quellcode:
doch für was steht das Succ
Random(Succ(High-Low)) + Low;
|
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Zitat:
|
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Zitat:
@Pseudemys Nelsoni: Diese function ist aber nicht so toll, man sollte randomize nur einmal aufrufen, sonst kann es schlechte Auswirkungen haben, auch wenn's zuerst nicht so ausschaut... ;) |
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Und ab Delphi 6
Delphi-Quellcode:
...:cat:...
uses
Math; ... // function RandomRange(const AFrom, ATo: Integer): Integer; Wert := RandomRange(1000, 2000); |
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Im Endeffekt wollten dir die ganzen Delphi-Cracks hier nur sagen, dass du mit der Funktion
Delphi-Quellcode:
den Zufallsgenerator praktisch initialisierst und mit der Funktion
randomize;
Delphi-Quellcode:
den Bereich angibst, in dem die Zahl liegen soll .. Weiterhin wird vom Minimum ab gezählt, sprich, wenn du eine Zahl zwischen 100 und 200 haben willst (das sind 100 Zahlen --> bereich = 100) nimmst du folgenden Befehl :
random(bereich)+minimum;
Delphi-Quellcode:
random(100)+101; // ja, eigentlich müsste das Minimum 100 sein, jedoch hat Delphi doch seine Standard-Krankheit dass immer und überall von 0 ab gezählt wird, nicht von 1 ;)
Stimmts Jungs ? :D |
Re: Zufälliger Integer-Wert zwischen zwei zahlen
wie soll das denn gehen mit + minimum?
Sagen wir mal ich habe es so:
Delphi-Quellcode:
So, toll, was ist wenn Random(Maximum) bereits 90 rauskommt? dann wird Minimum(20) dazugerechnet, und dann ist es ÜBER dem Maximum, nämlich 110.... :roll:
procedure irgendwas;
var Minimum, Maximum: integer; Ergebnis: integer; begin Randomize; Minimum := 20; Maximum := 100; Ergebnis := Random(Maximum)+Minimum; end; Zitat:
|
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Zitat:
|
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Ach, hör mal: Die Funktion Random(x) liefert dir einen zufälligen Wert. Dieser Wert ist >=0 und <x.
Wenn du jetzt eine Zahl haben willst, zwischen 80 und 100, dann lässt du dir einfach eine Zufallszahl zwischen 0 und 20 ausgeben und addierst am Ende noch 80 hinzu. |
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Zitat:
Delphi-Quellcode:
macht? :lol:
Random(Succ(High-Low)) + Low;
Wenn du also Random(20) eingibst, was kommt raus? Richtig, Zahlen im Bereich von 0-19, deshalb Succ (Nachfolger) davon plus der untere Wert. |
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Delphi-Quellcode:
funkt nur, wenn "von" kleiner als "bis" ist.
function zahl(von, bis: integer): integer;
begin result:= random(bis - (von + 1)) + von + 1; end; kannst ja noch ne abfrage reinmachen. rarndomize dann halt im onCreate oder so. gruss, iaby |
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Zitat:
Delphi-Quellcode:
function RandomRange(const AFrom, ATo: Integer): Integer;
begin if AFrom > ATo then Result := Random(AFrom - ATo) + ATo else Result := Random(ATo - AFrom) + AFrom; end; |
Re: Zufälliger Integer-Wert zwischen zwei zahlen
@Stevie Ist ja gut, ich wollte es ja nur verständlicher darstellen...
|
Re: Zufälliger Integer-Wert zwischen zwei zahlen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 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 by Thomas Breitkreuz