Mal wieder Zufall...

Operator_Jon

Erfahrenes Mitglied
HI!

Ich habe da mal wieder ein kleines Problem mit dem Zufall ;)
Ich hab auch schon ausführlich das Forum nach diesem Problem durchsucht, aber leider nichts gefunden....

Um eine Zufallszahl zu erstellen nutze ich folgende Funktion:
Visual Basic:
Function random(ByVal mn As Integer, ByVal mx As Integer)
    Dim r, z As Variant
    Randomize
    z = Rnd
    r = Int((mn - mx + 1) * z + mn)
    random = r
End Function
Nun ist mein Problem das ich eine Zufallszahl zwischen 0 und 1, oder zwischen 1 und 2 brauche.
Ich habe das mal durchgerechnet und festgestellt:
Visual Basic:
Int((mn - mx + 1) * z + mn)
ergibt ja immer:
Code:
((0 - 1 + 1) * xxx + 0)
---
0 - 1 + 1 = 0
0 * xxx = 0
0 + 0 = 0
Das selbe lässt sich mit 1 und 2 auch durchspielen:
Code:
((1 - 2 + 1) * xxx + 1)
---
1 - 2 + 1 = 0
0 * xxx = 0
0 + 1 = 1
Es kommt also immer der minimale Wert raus.
Hat jmd. eine Idee?
 
Zuletzt bearbeitet:
Ich bin auch nicht ganz sicher wie ich an diese Berechnung gekommen bin, irgendwo im Forum gefunden, war auf jeden Fall falsch :D

Visual Basic:
Int(mn + (mx - mn + 1) * z)

Mit dieser funktioniert es nun einwandfrei...
(Das ich das selbst nicht gesehen hab das es nicht klappen kann :-( )
 
Zurück