Zufallszahl in gegebenen Grenzen



  • Hallo!

    Ich komme einfach nicht auf die Berechnung von Zufallszahlen in gegebenen Grenzen.
    Es steht NICHT die "normale" rand() Funktion zur Verfügung, sondern folgende:

    // Zufallsfunktion
    random(int n)
    

    random(n) liefert aber nur Zufallszahlen zwischen 0 und (n-1). Wie kann ich damit jetzt Zufallszahlen für ein gegebens Intefvall "errechnen" wie z.B. [3;5] oder [9;55]?

    Gruß Georg



  • Ganz einfach - du lässt dir zunächst eine Zufallszahl zwischen 0 und max-min liefern und addierst darauf dann min 😉

    int zahl = random(3)+3;// Bereich [3,5]
    //oder allgemein:
    int zahl = random(mx-mn+1)+mn;// Bereich [mn,mx]
    


  • min sei 5, max sei 9

    zieh min von max ab und zähl 1 dazu, ergibt range von 5 (9-5+1)

    berechne zufallszahl zwischen 0 und range und zähl zum ergebnis min dazu

    et voilà

    damn it... zu langsam 😞



  • Ja, besten Dank euch beiden. :xmas1:

    Georg :xmas1:


Anmelden zum Antworten