This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

 Documentation /  Mathematica /  Das Mathematica Buch /  Höhere Mathematik in Mathematica /  Mathematische Funktionen /

Numerische FunktionenGanzzahlige und zahlentheoretische Funktionen

3.2.3 Pseudozufallszahlen

Erzeugung von Pseudozufallszahlen

Dies liefert eine Liste mit 3 Pseudozufallszahlen.

In[1]:= Table[Random[ ], {3}]

Out[1]=

Hier ist eine 30-stellige reelle Pseudozufallszahl aus dem Bereich von 0 bis 1.

In[2]:= Random[Real, {0, 1}, 30]

Out[2]=

Dies liefert eine Liste mit 8 ganzen Pseudozufallszahlen zwischen 100 und 200 (einschließlich).

In[3]:= Table[Random[Integer, {100, 200}], {8}]

Out[3]=

Wird Random[ ] wiederholt aufgerufen, so wird man eine „typische" Zahlenfolge ohne ein spezielles Muster erhalten. Es gibt viele Verwendungsmöglichkeiten für derartige Zahlen.

Häufig werden Pseudozufallszahlen benutzt, um Hypothesen numerisch zu prüfen. Wenn Sie zum Beispiel glauben, daß zwei symbolische Ausdrücke mathematisch gleich sind, können Sie dies durch Einsetzen „typischer" numerischer Werte für symbolische Parameter testen und dann die numerischen Ergebnisse vergleichen. (Wenn Sie dies tun, sollten Sie sorgfältig auf Probleme der numerischen Genauigkeit sowie auf das Problem mehrdeutiger komplexer Funktionen achten.)

Hier ist eine symbolische Gleichung.

In[4]:= Sin[Cos[x]] == Cos[Sin[x]]

Out[4]=

Das Einsetzen eines zufälligen numerischen Wertes zeigt, daß die Gleichung nicht immer True ergibt.

In[5]:= % /. x -> Random[ ]

Out[5]=

Andere häufige Anwendungen für Pseudozufallszahlen sind: Simulation stochastischer Prozesse und Stichprobenerhebungen bei großen Grundgesamtheiten. Die von Mathematica erzeugten Pseudozufallszahlen sind über den spezifizierten Bereich stets gleichverteilt.

Anders als bei fast allen anderen Mathematica-Funktionen können Sie jedesmal ein anderes Ergebnis erhalten, wenn Sie Random aufrufen. Wenn Sie Random in einer Berechnung verwenden, können Sie deshalb bei verschiedenen Gelegenheiten verschiedene Antworten erhalten.

Die Folgen, die Random[ ] liefert, sind, streng genommen, nicht „wirklich zufällig", obwohl sie für praktische Zwecke „ausreichend zufällig" sein sollten. Tatsächlich werden die Folgen, beginnend mit einem bestimmten „Saatkorn" (Startwert), durch Anwendung eines definierten mathematischen Algorithmus erzeugt. Wird derselbe Startwert angegeben, so ergibt sich dieselbe Folge.

Wenn Mathematica startet, nimmt es als Startwert für den Pseudozufallszahlengenerator die Tageszeit (in Bruchteilen von Sekunden gemessen). Deshalb werden in zwei verschiedenen Mathematica-Sessionen fast immer auch verschiedene Folgen von Pseudozufallszahlen erzeugt werden.

Wenn Sie sicher sein wollen, daß Sie stets dieselbe Folge von Pseudozufallszahlen erhalten, können Sie mit SeedRandom explizit einen Startwert für den Pseudozufallszahlengenerator angeben.

Dies legt einen neuen Startwert für den Pseudozufallszahlengenerator fest.

In[6]:= SeedRandom[143]

Hier sind drei Pseudozufallszahlen.

In[7]:= Table[Random[ ], {3}]

Out[7]=

Wenn Sie den Pseudozufallszahlengenerator mit dem gleichen Startwert aufrufen, erhalten Sie dieselbe Folge von Pseudozufallszahlen.

In[8]:= SeedRandom[143]; Table[Random[ ], {3}]

Out[8]=

Bei jedem Aufruf von Random wird der interne Zustand des Pseudozufallszahlengenerators geändert. Deshalb haben Aufrufe von Random in Nebenrechnungen eine Wirkung auf die von Random in Ihrer Hauptrechnung gelieferten Zahlen. Um damit verknüpfte Probleme zu vermeiden, können Sie den Wert von $RandomState speichern, ehe Sie Nebenrechnungen durchführen und ihn dann anschließend wiederherstellen.

Durch Lokalisierung des Wertes von $RandomState mittels Block wird der interne Zustand des Pseudozufallszahlengenerators nach Erzeugung der ersten Liste wiederhergestellt.

In[9]:= {Block[{$RandomState}, {Random[ ], Random[ ]}],
{Random[ ], Random[ ]}}

Out[9]=

Numerische FunktionenGanzzahlige und zahlentheoretische Funktionen