Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - RANDOMIZE

Referenz-Navigation

 

Syntax: RANDOMIZE [Startwert][, Algorithmus]
Typ: Anweisung
Kategorie: Mathematik

RANDOMIZE initialisiert den Zufallsgenerator.

Der erstellte Zufallsinitialwert ermöglicht der Funktion BefehlsreferenzeintragRND, Zufallszahlen zu generieren, und bestimmt den Algorithmus, welcher verwendet werden soll. Zulässige Werte für 'Algorithmus' sind:

Für jeden Initialwert wird jeder Algorithmus eine bestimmte, reproduzierbare Reihenfolge von Zahlen generieren. Soll bei jedem Aufruf von RANDOMIZE eine andere Zahlenreihenfolge erstellt werden, sollte ein sich verändernder Initialwert übergeben werden - z. B. der Rückgabewert der Funktion BefehlsreferenzeintragTIMER. Wird 'Startwert' ausgelassen oder erhält er den Wert -1.0, dann wird ein auf TIMER basierender Startwert verwendet.

Beachten Sie: Wird TIMER als Initialwert öfter in einer Sekunde aufgerufen, werden immer dieselben Zahlen erstellt. Grundsätzlich ist es nicht nötig, RANDOMIZE öfter als einmal mit einem sich verändernden Übergabeparameter aufzurufen, da die Zahlenreihenfolge der späteren Aufrufe nicht zufälliger sind als die nach dem ersten Aufruf. In den meisten Fällen sollte der Mersenne-Twister-Algorithmus zu einer ausreichend zufälligen Reihenfolge von Zahlen führen, ohne dass der Initialwert zwischen RND-Aufrufen neu belegt werden müsste.

Beim Aufruf von RANDOMIZE mit dem QB-kompatiblen Algorithmus wird ein Teil der Zufallswerte aufbewahrt. Das bedeutet, dass bei mehrmaligen Aufrufen von RANDOMIZE mit demselben Initialwert nicht jedes Mal die gleiche Reihenfolge erzeugt wird. Um eine bestimmte Reihenfolge zu erhalten, muss RND mit einem negativen Übergabeparameter aufgerufen werden.

Beispiel:

'Die C-rand()-Funktion soll verwendet werden
Randomize , 1

'Gibt zehn Zufallszahlen aus
For i As Integer = 1 To 10
  Print Rnd
Next
Sleep

Unterschiede zu QB:
Der Parameter 'Algorithmus' ist neu in FreeBASIC. QB hat nur einen Algorithmus (nachgebaut in FB im Algorithmus 4 und der Standardalgorithmus im Dialekt -lang qb).

Plattformbedingte Unterschiede:
Algorithmus 5 verwendet unter Windows die CryptApi, unter Linux /dev/urandom. Unter DOS ist der Algorithmus nicht vorhanden, hier wird bei Angabe des Wertes 5 der Standard-Algorithmus verwendet.

Unterschiede zu früheren Versionen von FreeBASIC:
Der Algorithmus 5 existiert seit FreeBASIC v0.24.

Unterschiede unter den FB-Dialektformen:
Der Standardalgorithmus hängt vom aktuellen Dialekt ab:

Siehe auch:
BefehlsreferenzeintragRND, BefehlsreferenzeintragMathematik


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 12.08.2007 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 27.12.2012 von Redakteurnemored gespeichert.
  Versionen Versionen