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.