Groups | Search | Server Info | Login | Register
Groups > de.comp.lang.misc > #2083
| From | Stefan Reuther <stefan.news@arcor.de> |
|---|---|
| Newsgroups | de.comp.lang.misc |
| Subject | Re: [srand()/rand()] Ich brauche mehr Chaos. |
| Date | 2025-03-10 18:13 +0100 |
| Message-ID | <vqna4r.2ro.1@stefan.msgid.phost.de> (permalink) |
| References | <AABnzWOfHfoAAA8s.A3.flnews@ferrat.uplawski.eu> <20250309201000.2c112389@Achmuehle.WOR> <AABnzocOCvQAAAYa.A3.flnews@ferrat.uplawski.eu> |
Am 10.03.2025 um 07:30 schrieb Michael Uplawski: > Sieghard Schicktanz hat geschrieben: >>> srand(Time.now.nsec) >>> allSigs[rand(numSigs)] >> >> _Könnte_ es evtl. daran liegen, daß der Zufallsgenerator jedesmal wieder >> auf einen "ähnlichen" Anfangswert gesetzt wird? > > Ich kenne mich mit PRNGs nicht aus. Mein Verständnis war bisher, > dass ein abweichender Seed-Wert für ausreichende Variationen sorgen > sollte. Die Frage ist, wieviele der Bits von 'Time.now.nsec' durch 'srand' ausgewertet werden - und andererseits, wieviele der Bits überhaupt gültig sind. Der klassische C-Zufallsgenerator nutzt nur 15 Bit. Und wenn im Extremfall dein Betriebssystem die Zeit in Zeitscheiben von 16 Millisekunden misst, und dir folglich als Nanosekunden nur Vielfache von 16000000 gibt, hast du von den 15 Bit schon 11 verloren. Ich würde als Seed für den Zufallsgenerator immer ein paar Bytes aus /dev/urandom benutzen. Wenn du das nicht hast, dann wenigstens die Nanosekunden irgendwie mit xor zusammenfalten (also in C sowas wie 'x ^= (x >> 16)') und ggf. die pid mit einbeziehen. Stefan
Back to de.comp.lang.misc | Previous | Next — Previous in thread | Next in thread | Find similar
[srand()/rand()] Ich brauche mehr Chaos. Michael Uplawski <michael.uplawski@uplawski.eu> - 2025-03-09 10:47 +0100
Re: [srand()/rand()] Ich brauche mehr Chaos. Michael Uplawski <michael.uplawski@uplawski.eu> - 2025-03-09 18:39 +0100
Re: [srand()/rand()] Ich brauche mehr Chaos. Tim Landscheidt <tim@tim-landscheidt.de> - 2025-03-09 19:11 +0000
Re: [srand()/rand()] Ich brauche mehr Chaos. Michael Uplawski <michael.uplawski@uplawski.eu> - 2025-03-10 07:33 +0100
Re: [srand()/rand()] Ich brauche mehr Chaos. Sieghard Schicktanz <Sieghard.Schicktanz@SchS.de> - 2025-03-09 20:10 +0100
Re: [srand()/rand()] Ich brauche mehr Chaos. Michael Uplawski <michael.uplawski@uplawski.eu> - 2025-03-10 07:30 +0100
Re: [srand()/rand()] Ich brauche mehr Chaos. Thomas Noll <-_tn_-@web.de> - 2025-03-10 16:02 +0000
Re: [srand()/rand()] Ich brauche mehr Chaos. Stefan Reuther <stefan.news@arcor.de> - 2025-03-10 18:13 +0100
Re: [srand()/rand()] Ich brauche mehr Chaos. Tim Landscheidt <tim@tim-landscheidt.de> - 2025-03-10 17:59 +0000
Re: [srand()/rand()] Ich brauche mehr Chaos. Michael Uplawski <michael.uplawski@uplawski.eu> - 2025-03-11 07:52 +0100
Re: [srand()/rand()] Ich brauche mehr Chaos. Michael Uplawski <michael.uplawski@uplawski.eu> - 2025-03-12 07:46 +0100
Re: [srand()/rand()] Ich brauche mehr Chaos. Michael Uplawski <michael.uplawski@uplawski.eu> - 2025-03-13 07:29 +0100
Ω Was: [srand()/rand()] Ich brauche mehr Chaos. Michael Uplawski <michael.uplawski@uplawski.eu> - 2025-03-13 07:30 +0100
Re: [srand()/rand()] Ich brauche mehr Chaos. Martin Klaiber <usenet.martinkl@gmx.de> - 2025-03-16 12:00 +0100
Re: [srand()/rand()] Ich brauche mehr Chaos. Michael Uplawski <michael.uplawski@uplawski.eu> - 2025-03-16 12:38 +0100
Re: [srand()/rand()] Ich brauche mehr Chaos. Patrick Rudin <taxi_bs@gmx.ch> - 2025-03-16 14:56 +0100
csiph-web