Warum ist ein Zufallsgenerator in Wahrheit kein Zufall und gibt es mehrere Programmierungen dafür die unterschiedlich gut sind?

5 Antworten

Warum ist ein Zufallsgenerator in Wahrheit kein Zufall 

Manche Zufallsgeneratoren nutzen ein bestimmtes Regelwerk, um aus den vorherigen Zahlen eine. Neue zu generieren. Das sind dann sogenannte PRNG (Pseudo Zufallsgeneratoren).

Es gibt aber auch die Möglichkeit, anhand von chaotischen physikalischen Prozessen zahlen zu generieren. Zum Beispiel habe ich Mal gesehen, wie Lavalampen gefilmt werden, und dann aus den Bildern Zahlen generiert werden.

Und gibt es verschiedene Programmierungen für Zufallsgeneratoren die unterschiedlich gut sind.

Natürlich. Zum Beispiel gibt es den Kongruenzgenerator, welcher jedoch paar Nachteile mit sich bringt. Mersenne Twister hingegen ist etwas sinnvoller, wenn man Zufallszahlen für Simulationen braucht. Es gibt mehrere Statistische Tests, um zu testen, wie gut ein PNRG beim generieren von Zufälligen Zahlen ist.

MissFlight 
Fragesteller
 26.08.2023, 14:11

Vielen Dank für deine ausführliche Antwort :-)

Würdest du Würfeln mit einem herkömmlichen Würfel oder das Ziehen von Kugeln aus einem Säckchen per Hand als einwandfreien Zufallsgenerator bezeichnen oder hat dieses Verfahren auch "Fehler" ?

0

Der in Java (und anderen Programmiersprachen) eingebaute Generator in der Klasse Random arbeitet mit der Formel

seed = (seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1)

Das ist gar nicht kompliziert, sondern schnell und ausreichend für die meisten Verwendungszwecke (Simulationen etc). Für Verschlüsselung etc ist es nicht ausreichend.

Für richtigen Zufall greift man auf externe Quellen (zB radioaktive Zerfälle) zurück, das ist aber teuer und meist unnötig.

Mehr: https://de.wikipedia.org/wiki/Zufallszahlengenerator

Woher ich das weiß:Berufserfahrung
MissFlight 
Fragesteller
 26.08.2023, 12:47

Vielen Dank :-)

Ich suche einen Zufallsgenerator, der so genau wie möglich Zufälle auswirft, wie sie beim physischen Roulette mit Croupier möglich sind. Theoretisch ist es möglich, dass 100 Mal hintereinander der selbe Zahlenblock (1-12 von 36 Zahalen) oder die selbe Farbe kommt. Aber ich habe gehört, die Online-Casinos haben ihre Grenzen und es kommt häufiger zum Ausgleich. So ist es dann vermutlich auch bei Zufallsgeneratoren. Kennst du einen im Internet, der getreu wie beim Roulette mit Croupierseinwurf simuliert?

0
Jangler13  26.08.2023, 13:02

Ah Interessant, hatte nicht erwartet, dass Java einen LCR nutzt. In Python und R werden zum Beispiel stattdessen Mersenne Twister benutzt.

0

Zufallsgeneratoren können "echten" Zufall produzieren - allerdings benötigen sie dann eine Entropie-Quelle. Ein rein rechnerischer Ansatz reicht dafür dann nicht. Und da liegt der Unterschied zwischen den zwei Grundtypen von Quellen von Zufall: Mit dem genannten Begriff "Zufallsgenerator" verbindest du lediglich Pseudo-Random-Generatoren, ohne "echte" Zufallskomponente. Allerdings verfügen viele Prozessoren über eine echte Zufallsquelle, so wird z.B. das Rauschen eines Widerstandes oder einer Diode dafür verwendet. Für einen solchen Typ Zufallsgenerator trifft die Behauptung deiner Physik- und Mathelehrerin nicht zu.

Frag sie einfach mal zu Widerstandsrauschen, und warum dessen Verlauf kein "echter" Zufall sein sollte. Ich bin sicher, dass sie dann ihre Behauptung einschränkt auf RNGs (Random Number Generators) welchen ausschließlich arithmetische Methoden zugrundeliegen.

MissFlight 
Fragesteller
 26.08.2023, 14:09

Vielen Dank für deine ausführliche Antwort :-)

Meine Schulzeit liegt schon 15 Jahre zurück. Ich kann sie nicht mehr fragen. Aber sicher bezog sie sich nur auf den "mini" Zufallsgenerator der auf ihrem grafikfähigen Taschenrechner drauf war. Solche Taschenrechner hatten wir ja alle in der Schulzeit zum Berechnen von Kurven. Und da ist solche hochkomplexe Programmierung natürlich nicht drauf mit Widerstandsrauschen. Sie hatte den Zufallsgenerator immer verwendet um zu entscheiden, welcher Schüler zur Leistungskontrolle an die Tafel musste ;-)

0
Bushmills145  26.08.2023, 14:25
@MissFlight

Was den "echten" RNGs zugrunde liegen kann - "kann", das es nicht das einzige Verfahren ist -, ist dies: https://de.wikipedia.org/wiki/W%C3%A4rmerauschen

Programmiertechnisch ist dies nicht aufwändig: auf Prozessoren, die solche Zufallsquellen haben, kann der Zufallswert üblicherweise aus einem Register gelesen werden. Ein Register ist in etwa so etwa wie eine Speicherzelle, worin allerdings auch ... fremdproduzierte ... Daten hineingelegt werden können.

1

Computer sind Deterministisch, die gleichen inputs werden immer im gleichen ergebnis resultieren. Der einzige weg damit ein Computer zufall ausgeben kann liegt also darin den input zufällig zu machen. zb über eine reihe der letzten mausbewegungen, die exakte uhrzeit der berechnung und ähnliches.

Cloudflare zb betreibt in seinen Rechenzentren verschiedene Zufallsgeneratoren die auf verschiedene zufällige inputs setzen, unter anderem eine Ganze wand voller lavalampen die dann abgefilmt und als seed für einen zufallsgenerator genutzt werden.

https://youtu.be/1cUUfMeOijg?si=5KQs3A-a4VTTGJF-

Woher ich das weiß:Berufserfahrung – Administrator mit über 12 Jahren Berufserfahrung
MissFlight 
Fragesteller
 26.08.2023, 12:39

Vielen Dank ! :-)

Beim physischen Roulette bei dem ein Croupier die Kugel einwirft wäre es möglich, dass 10.000 Mal hintereinander die selbe Zahl kommt. Das wäre angeblich bei einem programmierten Roulette oder Zufallsgenerator nicht möglich, weil die sich in irgendwelchen Grenzen bewegen und immer wieder zurückkehren zum Ausgleich. Kann das jetzt nicht so gut erklären. Aber du weißt sicher was ich meine. ^^ Stimmt das?

0

Weil du immer einen Startwert brauchst, der nicht völlig
zufällig ist. Früher hat man die Systemzeit genommen,
weil das das Einfachste war, etwas einigermaßen Zufälliges
zu bekommen. Mit etwas mehr Hardware kann man einen
übersteuerten Verstärker benutzen.

MissFlight 
Fragesteller
 26.08.2023, 12:38

Vielen Dank ! :-)

Beim physischen Roulette bei dem ein Croupier die Kugel einwirft wäre es möglich, dass 10.000 Mal hintereinander die selbe Zahl kommt. Das wäre angeblich bei einem programmierten Roulette oder Zufallsgenerator nicht möglich, weil die sich in irgendwelchen Grenzen bewegen und immer wieder zurückkehren zum Ausgleich. Kann das jetzt nicht so gut erklären. Aber du weißt sicher was ich meine. ^^ Stimmt das?

0
Tannibi  26.08.2023, 12:50
@MissFlight

Ja, das stimmt. Höhenstrahlung kann man auch verwenden,
das habe ich mal in einer Firma als Werkstudentin gemacht.
War aber mehr eine Machbarkeitsstudie. Oder eben etwas
mit einer Apparatur messen, deren Richtigkeit 3 Stellen hat und
dann die 7. Stelle nehmen.

1