Motivation

Bei der Modellierung von physikalischen System werden häufig normalverteilte Zufallszahlen benötigt. Immer wieder habe ich danach suchen müssen. Jetzt hab' ich's mir dem UrsRandomExtension-Modul gefixt.

Download

Verwendung

Normalverteilte Zufallszahlen

Normalverteilte Zufallszahlen liefert die Funktion NextGauss. Anzugeben sind der Mittelwert und die Standardabweichung der Verteilung. Es handelt sich bei dieser Funktion um eine Erweiterungsfunktion der Klasse System.Random. Der Aufruf erfolgt also wie ein Member dieser Klasse. Der formale Parameter Random As System.Random ersetzt die implizite Übergabe von this (oder Me in Basic) bei Standard-Member-Methoden.

Dim rnd As New Random
Dim x = rnd.NextGauss(µ:=0, σ:=1)
Dim y = rnd.NextGauss(10, 0.1)

Das Testprogramm zeigt, wie die Zufallszahlen verteilt sind.

Die Klasse Random besitzt eine Methode um gleichverteilte, ganzzahlige Zufallszahlen innerhalb eines bestimmten Bereichs zu generieren. Die Methode NextUniform liefert zufällige Gleitkommazahlen im angegebenen Bereich.

Die Instanz RandomSharedInstance entledigt von der Verpflichtung eine Instanz der Random-Klasse anzulegen.

Weitere Erweiterungsfunktionen

Bezeichnung Funktion
NextDate As Date Gibt ein zufälliges Date-Objekt zurück, das in einem angegebenen Bereich liegt.
NextDateTime As DateTime Gibt eine zufälliges DateTime-Objekt zurück, das in einem angegebenen Bereich liegt.
NextLong As Int64 Gibt eine zufällige 64-Bit-Ganzzahl zurück, die in einem angegebenen Bereich liegt.
NextUniform As Double Gibt eine zufällige Gleitkommazahl zurück, die in einem angegebenen Bereich liegt.
NextDouble as Double Gibt eine zufällige Gleitkommazahl zurück. Zwei Intervall-Varianten.

Test-Programm

Das Testprogramm zeigt die Verteilung von 1000 Samples.

Testprogramm MsgBoxExTest