Re: Werte für das C'sche srand()

Ferdinand Ihringer <[email protected]>
Newsgroups gmane.linux.suse.programming
Message-ID <[email protected]>
Hallo,

On Wednesday 13 October 2004 00:08, David Haller wrote:
> Am Tue, 12 Oct 2004, Bernhard Walle schrieb:
> >* Ferdinand Ihringer <[email protected]> [2004-10-12 22:08]:
> >> Ich habe ein Problem mit Zufallszahlen bzw. ein Problem mit dem
> >> Ausgangswert für Pseudozufallszahlen mit srand(). Das Programm sollte
> >> plattformunabhängig sein und ich würde mich gerne auf die zum
> >> ANSI-Standard gehörenden Funktionen beschränken, aber für statistische
> >> Zwecke rufe ich es z.B. 10000 mal hintereinander auf. Als einzigen
> >> plattformunabhängigen Wert, der da in Frage kommt, kenne ich da time(0).
>
> BTW: "eigentlich" sollte das wohl 'time(NULL)' sein.

Im Quelltext steht auch NULL statt 0 drin. Ich wollte hier nur nicht zu 
ausschweifend werden.

> >> Die 10000 Programmaufrufe erstrecken sich aber
> >> nun leider über ein bisschen mehr als 60 Sekunden. Da hätte ich das
> >> Programm auch nur 60 mal aufrufen können.
> >
> >PID auslesen (getpid() unter POSIX) geht auch nicht? Ansonsten kann
> >man auch uninitialisierte Variablen vom Stack auslesen, geht natürlich
> >aus jeder Plattform. ftime() wäre auch POSIX, aber eben nicht ANSI C.
>
> Und vielleicht 'gettimeofday' oder statt 'time'. Das mit der PID ist
> sicherlich auch noch ne Idee.

Alles schön, aber alles 'nur' POSIX...

> Evtl. koennte mann das Ergebnis auch noch durch einen Hash-Algorithmus
> schicken, z.B. MD5 oder SHA1 und dies dann wieder auf 'sizeof(unsigned
> int)' "kuerzen" (und zwar nicht mit nem einfachen 'mod').

Eine Frage aus reinem Interesse: Wie würde man das machen? Einfach von den 
16-MD5 die sizeof(unsigned int) ersten Bytes nehmen?

Ferdinand


-- 
Um die Liste abzubestellen, schicken Sie eine Mail an:
    [email protected]
Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.