Dommie: Zufallszahlen

Hallo,

mal 'ne Frage, die nichts mit dem Internet und HTTP zu tun hat.

Wie erzeugt eigentlich der Computer eine Zufallszahl? Es gibt ja verschiedene Möglichkeiten, dem Computer zu eingeben, dass er eine zufällig generierte Zahl ausgeben soll oder damit rechnen soll.

  • Der Computer ist ja nicht intelligent und kann sich auch keine Zufallszahl ausdenken, daher denke ich, er wird sie irgendwie berechnen. Aber wenn, dann wie?
  • Dem Computer ist auch garantiert nicht mal irgendwann eine Liste von irgendwelchen Zahlen eingegeben worden, die er bei Bedarf abruft.
  • Im Hintergrund läuft bestimmt auch kein Dauer-Rechenprogramm, dessen Ergebnis bei Bedarf die Zufallszahl ergibt.
  • Und ich glaube auch nicht, dass der Computer bei Bedarf erst irgendetwas zu rechnen anfängt, und wenn doch, was rechnet er?

In diesem Fall bin ich ratlos... Weiß jemand, wie der Computer eine Zufallszahl generiert?

Danke, Dommie...

  1. Es gibt einen ganz einfachen Pseudozufallsgenerator. Das Verfahren heißt Lineare Kongruenzmethode -> www.mathematik.uni-ulm.de/stochastik/lehre/ss03/markov/skript/node26.html

    Um im Computer echten Zufall zu erzeugen sammelt während des Betriebes Entropie - z.B aus Mausbewegungen und füttert damit bei Bedarf den Pseudozufallsgenerator.

    Kurz gesagt: Man sammelt Daten über unabhängige Ereignisse und verwurstet die mit einer nichtlinearen Funktion. Das Ergebnis ist dann eine Zufallszahl.

    1. Hallo Albrecht,

      Um im Computer echten Zufall zu erzeugen sammelt während des Betriebes Entropie - z.B aus Mausbewegungen und füttert damit bei Bedarf den Pseudozufallsgenerator.

      Ist es beim "normalen" Computer immer der Fall, dass die Mausbewegungen Einfluss auf die Zufallszahlberechnungen nehmen, oder braucht man dazu vielleicht Software, um das nachzurüsten?

      Dommie...

      1. hi,

        Ist es beim "normalen" Computer immer der Fall, dass die Mausbewegungen Einfluss auf die Zufallszahlberechnungen nehmen

        Nein, vermutlich eher gar nicht [1].

        Andernfalls würden entweder die Zufallszahlengeneration in Scripten, die auf einer reinen Webserver-Maschine laufen, immer ziemlich gleiche Ergebnisse produzieren - oder aber man hätte einen guten Anhaltspunkt dafür, dem Webhoster vorzuwerfen, dass der Administrator auf der gleichen Maschine auch seinen Egoshooter zockt ...

        gruß,
        wahsaga

        [1] Jedenfalls kaum ausschließlich.

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. oder aber man hätte einen guten Anhaltspunkt dafür, dem Webhoster vorzuwerfen, dass der Administrator auf der gleichen Maschine auch seinen Egoshooter zockt ...

          Was meinst Du denn damit?

          1. Hallo Dommie.

            oder aber man hätte einen guten Anhaltspunkt dafür, dem Webhoster vorzuwerfen, dass der Administrator auf der gleichen Maschine auch seinen Egoshooter zockt ...

            Was meinst Du denn damit?

            Spiele einen Egoshooter deiner Wahl und du verstehst, was wahsaga meinte.

            Einen schönen Samstag noch.

            Gruß, Ashura

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            mathbr:del.icio.us/ mathbr:w00t/
          2. hi,

            oder aber man hätte einen guten Anhaltspunkt dafür, dem Webhoster vorzuwerfen, dass der Administrator auf der gleichen Maschine auch seinen Egoshooter zockt ...

            Was meinst Du denn damit?

            Vor einem reinen Webserver dürfte idR. in normalen Betrieb niemand sitzen, der ihn mit einer Maus bedient ...

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Hallo,

        Um im Computer echten Zufall zu erzeugen sammelt während des Betriebes Entropie - z.B aus Mausbewegungen und füttert damit bei Bedarf den Pseudozufallsgenerator.

        Ist es beim "normalen" Computer immer der Fall, dass die Mausbewegungen Einfluss auf die Zufallszahlberechnungen nehmen, oder braucht man dazu vielleicht Software, um das nachzurüsten?

        Normalerweise reicht es den Zufallsgenerator einmal mit der aktuellen Zeit zu füttern. Sollte das immer noch zu oft nicht zufällig sein (innerhalb einer Sekunde die gleiche Zahl), gibt man die Millisekunden noch mit an. Wenn das immer noch nicht reicht, geht man bis auf die sog. Ticks runter. Da stösst man dann auf ein Problem, was dann eben in Pseudozufallszahlen endet. Das genauer zu erklären ist mir an dieser Stelle allerdings zu viel; Nur soviel sei gesagt: Ein Computer ist nur bis zu einem gewissem Grad Fraktal und damit eben Pseudofraktal. Fraktalität ist für echten Zufall allerdings unabdingbar.

        Willkommen in der Chaostheorie...

        Gruss, piere

  2. Hello out there!

    In diesem Fall bin ich ratlos... Weiß jemand, wie der Computer eine Zufallszahl generiert?

    Du kennst Wikipedia?

    Der Artikel Zufallszahl enthält einige Verweise ...

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
  3. Hallo Dommie,

    Meist werden nur Pseudozufallszahlen verwendet, d.h. es wird einfach eine sehr unregelmäßige Funktion verwendet. Wenn man den Algorithmus mit dem gleichen Wert initialisiert, liefert er dann auch immer die gleiche Zahlenfolge.
    Wenn man richtige Zufallszahlen haben will, braucht man irgendwelche Eingaben von außen. Dazu kann man z.B. Tatatureingaben oder Mausbewegungen verwenden. Das Rauschen von irgendwelchen Sensoren kann man auch verwenden.

    In diesem Artikel http://de.wikipedia.org/wiki/Zufallsgenerator steht recht viel dazu.

    Grüße

    Daniel

  4. Hallo Dommie,

    folgender Zufallszahlgenerator hat mir lange gute Dienste geleistet:

    neueZufallszahl = alteZufallszahl*65539 mit Startzahl ungleich 0.

    Also einfach eine Multiplikation mit einer "krummen" Zahl. Die Zahl wächst nicht ins Unendliche, da in den von mir verwendeten Programmiersprachen (Fortran und C) die ganzen Zahlen (32 bit Integer) in der Größe begrenzt sind und die CPU immer größte_Zahl + 1 = kleinste_Zahl rechnet. Eine Art Modulofunktion ist also automatisch eingebaut. Man erhält so (Pseudo-)Zufallszahlen mit einer Periode von ca. 10 Millionen. Das Histogramm und das Spektrum sind wie mit dem Lineal gezogen. Unterschiedliche Startzahlen liefern unterschiedliche Zufallszahlfolgen.

    Gruß, Jürgen