Seite 1 von 1
Zufallszahl zwischen a und b
Verfasst: 04.12.2008 14:00
von Dare Devil
Hallo.
Gibt es einen Trick eine Zufallszahl zwischen zwei bestimmten Zahlen zu ermitteln. Random() ermittelt ja nur eine Zufallszahl zwischen 0 und einer Zahl, ich moechte diese Anfangsposition aber selbst bestimmen koennen - z.B. eine Zufallszahl zwischen -100 und 100. Gibts da irgendeine Loesung?
Verfasst: 04.12.2008 14:02
von Fluid Byte
Verfasst: 04.12.2008 14:02
von NicTheQuick
Entweder im Forum suchen oder schnell selbst überlegen.
Ein Wert zwischen -100 und 100 sind ingesamt 201 Möglichkeiten und es beginnt mit -100.
Also berechnet man die entsprechende Zufallszahl mit Random(200) - 100.
Wenn deine Grenzen allgemein min und max sind, geht es mit Random(max - min) + min.
Verfasst: 04.12.2008 14:16
von Dare Devil
Funktioniert einwandfrei - dankeschoen

Verfasst: 04.12.2008 19:32
von STARGÅTE
falls du später noch "andere" Zufallszahlen brauchst, kann ich dir dieses Macro geben:
Code: Alles auswählen
Macro RandomArea(StartValue, EndValue, StepValue=1)
( Random(Int(((EndValue)-(StartValue))/(StepValue)))*(StepValue)+(StartValue) )
EndMacro
damit könntest du dann auch deinen Fall machen :
RandomArea(-100, 100)
oder zum Beispiel nur gerade Zahlen von 10 bis 20:
RandomArea(10, 20, 2)
Verfasst: 04.12.2008 20:13
von Dare Devil
STARGÅTE hat geschrieben:falls du später noch "andere" Zufallszahlen brauchst, kann ich dir dieses Macro geben:
Code: Alles auswählen
Macro RandomArea(StartValue, EndValue, StepValue=1)
( Random(Int(((EndValue)-(StartValue))/(StepValue)))*(StepValue)+(StartValue) )
EndMacro
damit könntest du dann auch deinen Fall machen :
RandomArea(-100, 100)
oder zum Beispiel nur gerade Zahlen von 10 bis 20:
RandomArea(10, 20, 2)
Das koennte mir sehr nuetzlich werden, danke fuer deine Muehe

Verfasst: 04.12.2008 22:30
von DrNo
Hab da auch noch eine Frage dazu, also zu Random()
Wie kann ich in Random festlegen was für zeichen und wie viele benutzt werden?
Also nur Zahlen, oder auch Buchstaben oder Sonderzeichen und so.
Es gibt ja Random(#FFFF) aber das versteh ich nicht...
Verfasst: 04.12.2008 22:39
von Kaeru Gaman
Random($FFFF) ist einfach nur Random(65535), nur in Hex-schreibweise.
wenn du bestimmte zeichen erzeugen willst, musst du deren ASCII-codes erzeugen.
z.b. erzeugt Chr(Random(9)+48) die ziffern 0-9
für zahlen und großbuchstaben musst du etwas tricksen, um die zwei bereiche abzudecken:
wenn du eine unregelmäßige reihe von buchstaben erzeugen willst, benutzt du am besten ein Array:
Code: Alles auswählen
Dim ascii$(19)
For n=0 To 19
Read ascii$( n )
Next
DataSection
Data.s "0", "1", "3", "5", "6", "8", "A", "C", "D", "F", "H", "L", "M", "N", "P", "Q", "R", "S", "T", "U"
EndDataSection
For n=0 To 50
Debug ascii$( Random( 19 ) )
Next
Verfasst: 05.12.2008 00:05
von HeX0R
Kaeru Gaman hat geschrieben:
wenn du eine unregelmäßige reihe von buchstaben erzeugen willst, benutzt du am besten ein Array:
Code: Alles auswählen
Dim ascii$(19)
For n=0 To 19
Read ascii$( n )
Next
DataSection
Data.s "0", "1", "3", "5", "6", "8", "A", "C", "D", "F", "H", "L", "M", "N", "P", "Q", "R", "S", "T", "U"
EndDataSection
For n=0 To 50
Debug ascii$( Random( 19 ) )
Next
Man sollte nicht unerwähnt lassen, dass dieser Code nicht mehr so unter PB4.3 funktioniert.
(Da heisst es dann Read
.s ascii$( n ))