Ersatz für drand48()?
-
Hallo
mir bereitet folgendes Kopfzerbrechen:
seedrand() { int i, seed; struct timeval tmptv; gettimeofday (&tmptv, (struct timezone *)NULL); /* seed = (int) (tmptv.tv_usec - 1000000 * (int) ( ((double)tmptv.tv_usec) / 1000000.0 ) ); */ seed = (int) tmptv.tv_usec; srand48(seed); (void)drand48(); /* Spin it once. */ return(0); }
Diese Funktion soll eine Zufallskombination erzeugen, lässt sich aber nicht kompilieren (WIN XP,DEV C++).
Ich würde gerne wissen wie ich eine 5stellige Zufallszahl erzeugen kann und ob es für drand48() bzw. srand48() Ersatzschreibweisen oder Ersatzfunktionen gibt.
Desweiteren verstehe ich die Struktur nicht.
Wer kann mir das erklären?
MfG
kiyoto
-
wo hast du überhaupt drand48 uund srand48 her?
im normalfall nimmt man srand und rand aust der cstdlib/stdlib.h
MfG Drako
PS:
ok, just found it...
http://opengroup.org/onlinepubs/007908799/xsh/drand48.html
aber komisch, also zum normalen C-Standard bzw. C++-Standard gehören die nicht...
PPS:
hab noch das gefunden:
#define srand48(s) srand(s) #define drand48() (((double)rand())/((double)RAND_MAX)) #define lrand48() rand()
bei http://www.experts-exchange.com/Programming/Languages/CPP/Q_21841409.html
sozusagen als workaround.
-
Die Funktionen hab ich aus einem alten Programm.
srand(time(NULL)) kennt mein Compiler aber drand48() konnte ich so direkt auch nirgends finden. Jedenfalls nicht so schnell.
Jedenfalls funktionieren die Makros und dafür danke.Die Struktur ist auch wieder Marke Eigenbau.
In diesem Sinne Peace
kiyoto