Groups | Search | Server Info | Login | Register


Groups > de.comp.lang.misc > #2083

Re: [srand()/rand()] Ich brauche mehr Chaos.

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

[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