Negative "Zufallszahlen"



  • Hallo!

    Ich möchte Zufallszahlen im Bereich zwischen -99 bis 99 generieren. Im Moment verwende ich dafür srand() und rand(). Wie kann ich die negativen Zahlen am besten generieren?

    danke,



  • am besten ist wohl:

    zzahl = ((double)rand()/RAND_MAX)*(maxval-minval)+minval;
    

    (minval und maxval sind die Grenzen des gewünschten Zahlenbereiches)



  • lol also ich bin da auch noch nicht so stark belehrt aber ich würds halt so machen:

    // Ganz normal wie gewohnt Zufallszahl berechnen
    
    // Falls sie negativ sein soll:
    
    cout << "Zufallszahl: " << -name << endl;
    
    // Ein Beispiel:
    
    #include <iostream>
    using namespace std;
    
    int main()
    {
    int b;
    srand(12);
    b = rand();
    
    cout << "Zufallszahl: "<< -b << endl;
    
    return 0;
    }
    
    // Programm nicht getestet!
    

    versuch´s mal!



  • CStoll schrieb:

    am besten ist wohl:

    zzahl = ((double)rand()/RAND_MAX)*(maxval-minval)+minval;
    

    (minval und maxval sind die Grenzen des gewünschten Zahlenbereiches)

    danke.

    @XaTrIxX: das generiert mir aber nicht "zufällig" positive oder negative zahlen.



  • CStoll schrieb:

    am besten ist wohl:

    zzahl = ((double)rand()/RAND_MAX)*(maxval-minval)+minval;
    

    (minval und maxval sind die Grenzen des gewünschten Zahlenbereiches)

    besser den modulo operator

    zahl=rand()%(maxval-minval)+minval;
    


  • otze schrieb:

    besser den modulo operator

    zahl=rand()%(maxval-minval)+minval;
    

    Besser nicht - die unteren Bits von rand() sind afaik nicht ganz so "zufällig" wie sie sein sollten 😉



  • Wie wär's denn damit:

    srand ((unsigned)time(NULL));
    int zahl=min+rand()%(max-min+1)
    
    if(rand()%2==1)
      zahl=zahl*(-1);
    


  • Suchen wir grad alle _möglichen_ Lösungen, die _kürzeste_ Lösung, die _längste_ Lösung oder die, die die _zufälligsten_ Ergebnisse liefert? 😃

    *SCNR*



  • warum nicht einfach

    int i = rand() % 199;
    i -= 99;
    

    Oder wurde das schon genannt, nur in andren Worten?

    mfg.


Anmelden zum Antworten