rand() Zufallszahlen erstellen lassen.
-
Kann mir jemnand einen Code sagen,der eine Zahl von 1-3 erzeugen lassen kann?

-
Warum rand()? Wir machen hier C++, da geht so etwas nur mit komplizierten Templates :p :
http://en.cppreference.com/w/cpp/numeric/random/uniform_int_distributionFalls du wissen möchtest, wie man so etwas selber machen könnte:
zufallszahl_in_bereich = original_zufallszahl % breite_des_bereichs + anfang_des_bereichs;Was aber gewisse Probleme mit der Feinverteilung der Zahlen haben kann, besonders wenn der Bereich groß wird. Oder es funktioniert gar nicht, wenn der Bereich größer wird als die maximale Zufallszahl. Aber das kümmert wohl kaum jemanden, der rand() benutzt. Korrekter wäre es jedenfalls, die Zufallszahl nach der obigen Formel auf die nächstgrößere Zweierpotenz zu stutzen und dann ein Wegwerfverfahren zu benutzen. Oder eben die fertige C++-Funktionalität dafür, die das alles schon richtig machen sollte (zumindest beim GCC tut sie es).
-
Daraus werde ich nicht schlau... Kannst du mir mal einen Code schreiben?
-
DarkLord44 schrieb:
Daraus werde ich nicht schlau... Kannst du mir mal einen Code schreiben?
SeppJ meint:
#include <iostream> #include <random> #include <ctime> int main() { using namespace std; std::mt19937 random_generator( static_cast< unsigned long >(time(0)) ); std::uniform_int_distribution< int > _123( 1, 3 ); for( int i=0; i<123; ++i ) cout << _123( random_generator ) << " "; cout << endl; return 0; }