Funktionsreferenz


Random

Erzeugt eine pseudozufällige Fließkommazahl.

Random ( [Min [, Max [, Flag]]] )

Parameter

Min [optional] Die kleinste zu erzeugende Zahl. Standard ist 0.
Max [optional] Die größte zu erzeugende Zahl. Standard ist 1.
Flag [optional] Wenn auf 1 gesetzt, wird eine Integerzahl zurückgegeben. Standard ist eine Fließkommazahl.

Rückgabewert

Erfolg: Gibt eine Pseudozufallszahl zwischen Min und Max zurück.
Fehler: Gibt 0 zurück und setzt @error auf 1, falls falsche Parameter.

Bemerkungen

Standardmäßig arbeitet die Zufallsfunktion mit Dezimal-/Fließkommazahlen. Werden nur Integer/Ganzzahlen gewünscht, ist das Flag auf 1 zu setzen.

Wird nur ein Argument angegeben, so wird dieses als Max interpretiert.

Das Ergebnis liegt im Bereich von Min bis INKLUSIVE Max bei Verwendung von Integer (aber kleiner Max bei Verwendung von Fließkommazahlen).

Wenn Integer verwendet werden, so muss Max-Min kleiner als 2^31 sein.

Übersetzte Kommentare basierend auf der Originalquelle

Diese Funktion nutzt den"Mersenne Twister " Zufallszahlengenerator, MT19937, geschrieben von Takuji Nishimura, Makoto Matsumoto, Shawn Cokus, Matthe Bellew und Isaku Wada.

Der "Mersenne Twister" ist ein Algorithmus für das Generieren von Zufallszahlen. Er wurde in Anbetracht der Mängel verschiedener anderer Generatoren entwickelt. Der Zyklus, 2<sup>19937-1, und der Verlauf der Gleichverteilung, 623 Dimensionen, sind hier weitaus größer. Ausserdem ist der Generator schnell. Er vermeidet Multiplikation und Division, und er profitiert von Cachespeichern und Pipelines. Weitere Informationen auf der Webseite der Entwickler unter http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html

Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved.

Weitergabe und Gebrauch in Quell- und Binärform, mit oder ohne Modifikationen, sind unter Einhaltung der folgenden Bedingungen erlaubt:

1. Bei Weitergabe von Quellcode muss die obige Copyright Notiz, diese Liste der Bedingungen und der folgende Haftungsausschluss enthalten sein.

2. Bei Weitergabe in Binärform muss die obige Copyright Notiz, diese Liste der Bedingungen und der folgende Haftungsausschluss in der Dokumentation und/oder anderem Material, das bei der Weitergabe mitgeliefert wird, enthalten sein.

3. Die Namen der Mitwirkenden dürfen nicht genutzt werden, um Produkte zu empfehlen oder zu bewerben, die aus dieser Software abgeleitet wurden, ohne explizite, vorherige, schriftliche Erlaubnis.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS"AS IS " AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Verwandte Funktionen

Round, SRandom

Beispiel


; Münze werfen
Local $Msg
If Random() < 0.5 Then ; Liefert einen Wert zwischen 0 und 1
    $Msg = "Kopf. 50% Gewinn"
Else
    $Msg = "Zahl. 50% Verlust"
EndIf
MsgBox(0, "Münze werfen:", $Msg)


; Würfeln
MsgBox(0, "Würfeln", "Sie würfelten eine " & Random(1, 6, 1))

; Simulationsspiel eines Aktienmarktes
Local $AktienPreis = 98
Local $AktienPreisAenderung = Random(-10, 10, 1) ; Erstellt eine Ganzzahl zwischen -10 und 10
$AktienPreis = $AktienPreis + $AktienPreisAenderung
If $AktienPreisAenderung < 0 Then
    MsgBox(4096, "Aktien Änderung", "Ihre Aktie fiel auf " & $AktienPreis & "€")
ElseIf $AktienPreisAenderung > 0 Then
    MsgBox(4096, "Aktien Änderung", "Ihre Aktie stieg auf " & $AktienPreis & "€")
Else
    MsgBox(4096, "Aktien Änderung", "Ihre Aktie blieb bei " & $AktienPreis & "€")
EndIf


; Zufälliger Buchstabe
Local $Letter
If Random() < 0.5 Then
    ; Große Buchstaben
    $Buchstabe = Chr(Random(Asc("A"), Asc("Z"), 1))
Else
    ; Kleine Buchstaben
    $Buchstabe = Chr(Random(Asc("a"), Asc("z"), 1))
EndIf