Wie generiert man Zufallszahlen?

9 Antworten

Er nutzt einen PRNG, also einen Algorithmus, der aus einem internen Zustand eine Zahl generiert und einen Folgezustand erzeugt, sodaß es zufällig wirkt. Kenne ich den aktuellen Zustand, dann kann ich auch die Folgezahl ermitteln.

Beispiele sind Dinge wie der LCG oder Mersenen-Twister

Sie alle brauchen einen zufälligen Startwert.

Wo bekomme ich also den Zufall her, den ich benötige?

Ich kann auf ausreichend zufällige Ereignisse zurückgreifen, Eingabegeräte Events, IRQs, Netzpakete usw. usf. . Ferner bieten die meisten aktuellen Platformen einen Hardware-RNG, der z.B. aus weißem Rauschen eine zufällige Bitfolge generiert (so zufällig es halt geht).

Man kann aber auch einen Line-In-Eingang sampeln, um ein mehr oder minder brauchbares weißes Rauschen zu erhalten.

"Echten" zufall kann man tatsächlich nicht erzeugen, Computer erzeugen hier pseudo Zufallszahlen.

Es gibt dafür verschiedene Ansätze, hier sind mal 2.

  1. Du nimmst irgendeinen nicht-deterministischen State (häufig die Uhrzeit), jagst diese durch einen Hash und reduzierst ihn dann auf einen gewünschten Wertebereich - reicht oftmals volkommen aus. dazu kannst du deinen Zufall reproduzierbar halten.
  2. Du verwendest ein Kamerabild (z.B. von einer sich oft wandelnden Struktur) und jagst diesen durch einen Hash.

An und für sich ist der Wertebereich wenn man es richtig macht sehr nahe an einer Gleichverteilung, und daher hast du quasi einen Zufallsgenerator.

Bei einem Computer gibt es im Grunde keine Zufallszahlen. Das sind mathematische Berechnungen, die durch Hinzunahme von z.B. Mikrosekundenzähler den Anschein erwecken, zufällige Ergebnisse auszuwerfen.

echten zufall gibt es nicht, man kann aber zum berechnen einer "zufallszahl" diverse unerratbare Faktoren herziehen. z.B. aktuelle CPU temperatur + aktueller Datendurchsatz der Festplatte - anzahl der Laufenden Prozesse.

Selbst Kameraaufnahmen von Lavalampen wurde schon benutzt als Grundlage.


Steffile  27.07.2025, 13:07

Ja und Random.org verwendet atmosphaerisches Rauschen