Gibt es einen Programmierten " Zufall"

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Es gibt so genannte Pseudozufallsgeneratoren, die werden einmal initialisiert (z. B. mit der Systemzeit in Mikrosekunden) und haben dann einen internen Zustand, der verborgen ist und der wird dann "permutiert", um eine Zahlenfolge zu generieren, die bestimmte Eigenschaften mit zufälligen Zahlen gemein hat. Wirklich zufällig sind diese Zahlen nicht. Wenn man den internen Zustand des Generators kennt, kann man sie reproduzieren.

Von diesen Pseudozufallszahlengeratoren gibt es dann noch eine Kategorie "kryptographisch sicherer Pseudozufallszahlengeneratoren". Die sind ausreichend Komplex, dass man aus den generierten Zufallswerten definitiv nicht mit vertretbarem Aufwand auf den internen Zustand zurückschließen kann und werden im Bereich der Kryptographie (Verschlüsselung) eingesetzt.

Im Unix-Umfeld gibt es die kryptographisch sicheren Zufallszahlengeneratoren "/dev/random" und "/dev/urandom". Deren interner Zustand wird von "zufälligen" äußeren Ereignissen beeinflusst, wie dem genauen Zeitpunkt des Eingangs von Netzwerkpaketen, dem exakten Timing von Tastenanschlägen des Users oder dem exakten Cursorverlauf der Maus (moderne optische Sensoren schaffen mehrere tausend Abtastungen pro Sekunde), die selten genau reproduzierbar sind.

Zum Schluss gibt es noch "Hardware-Zufallszahlengeneratoren", die z. B. mit einer Antenne elektromagnetische Abstrahlung einfangen, diese stark verstärken und aus dem entstehenden "Rauschsignal" Zufallswerte ermitteln. Das ist dann schon sehr zufällig, da insbesondere bei "thermischem Rauschen" auch quantenmechanische Vorgänge dabei sind, die als tatsächlich zufällig angesehen werden (Stichwort: "quantenmechanische Messung").

Siehe auch hier: http://de.wikipedia.org/wiki/Zufallszahlengenerator

Sehr ausführlich und zudem richtig, DH!

0

hi,ja wirklich zufällig ist nix, meistens nimmt man die zeit als "zufallsfaktor". also jenachdem wie spät es grad is kommt en andrer wert raus (bin mir da nich sicher aber glaub milisekunden bereich)

Ganz richtig erkannt: Es giebt beim Programmieren keinen echten Zufall!

Was möchtest Du wissen?