6 stellige Zufallszahl generieren
-
hallo,
möchte eine 6 stellige zufallszahlen generieren lassen...
aber ich bekomm immer nur die gleiche zahl *g*cu
unsigned int Server::generateUserId() { std::srand(time(0)); return ((double) std::rand() / 899999) + 100000; }
-
rand()%900000+100000
würd ich jetzt mal spontan sagen
edit:
autsch, wenn du immer std::srand(time(0)); machst
mach die funktion am besten so:unsigned int Server::generateUserId() { static int i=0; if (!i) { std::srand(time(0)); ++i; } return rand()%900000+100000; }
-
ja;-)
am besten std::srand(time(0)); in den konstruktor geben;-)
wann würde man boost::random nehmen?
cu
-
öhm, mit boost::random kenn ich mich ned aus,
aber für sonen fall sollte es das normale rand auch tun ^^
boost random bietet afaik mehr möglichkeiten auf welche weise die pseudo zufalls zahl generiert wird, aber ich mach mich hier mal nicht fest, da ich wie gesagt keine ahnung hab ^^
schau am besten mal auf www.boost.org
-
#include <cstdlib> #include <ctime> #include <iostream> namespace { int init_rng(unsigned seed) { std::srand(seed); return 0; } int my_rand() { static int foo = init_rng(unsigned(std::time(0U))); return rand(); } } int rand_6() { return my_rand() % 899999 + 100000; } int main() { for(int i = 0; i < 10; ++i) std::cout << rand_6() << std::endl; return 0; }