Ansicht
Dokumentation
QF05_RANDOM - Zufallszahlengenerator
rdisp/max_wprun_time - Maximum work process run time PERFORM Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
Aufgabe
Der Funktionsbaustein erzeugt Zufallszahlen zwischen 0 und 1.
Beispiel
DATA ZUFALLSZAHL TYPE F.
...
CALL FUNCTION 'QF05_RANDOM'
IMPORTING RAN_NUMBER = ZUFALLSZAHL.
Beschreibung
Die Zufallszahlen werden nach der linearen Kongruenzmethode
X(n) = A * X(n-1) + C mod M
RAN_NUMBER = X(n) / M
erzeugt. Die konkreten Parameter sind dabei
M = 2**32 (Modulus)
A = 67301 (Multiplikator)
C = 1 (Inkrement)
Der Startwert X(n-1) kann auf verschiedene Arten festgelegt werden. Wenn Sie nacheinander mehrere Zufallszahlen
benötigen, so sollten Sie den Startwert höchstens beim ersten Aufruf extern vorgeben. Die folgenden Möglichkeiten sind in absteigender Priorität geordnet.
-
Externer Startwert
Beim Aufruf wird der Startwert als Parameter übergeben. Dieses Vorgehen wird nur als Testhilfe empfohlen. Sie können damit reproduzierbare Folgen von Zufallszahlen erzeugen. Für Tests nachfolgender Berechnungen sind folgende Startwerte interessant:
RAN_SEED RAN_NUMBER
4294967296 2.32830643653870 E-10 kleinster Wert
3829101094 9.99999999767169 E-01 zweitgrößter Wert
4062034195 1.00000000000000 E+00 größter Wert -
Vorbesetzung durch den letzten Aufruf
Die globale Variable für den Startwert des Funktionsbausteins ist durch den letzten Funktionsaufruf besetzt. -
Vorbesetzung durch SPA/GPA-Parameter im SAP-Memory
Der Startwert wird als SPA/GPA-Parameter übergeben. Sie können diesen Parameter durch Aufruf des Funktionsbausteins QF05_RANDOM_SAVE_SEED setzen. - Der Startwert wird intern berechnet.
Literatur
- D.E.Knuth, The Art of Computer Programming Vol.2. Second edition. Addison-Wesley, Reading Mass. 1981
- B.D.Ripley, Stochastic Simulation. Wiley, New York 1987
Gutachten
Das verwendete Verfahren zur Erzeugung von Zufallszahlen und die konkreten Parameter wurden in einem Gutachten der TH Darmstadt für die SAP AG untersucht. Kontrollrechnungen zur Überprüfung der Implementierung wurden durchgeführt.
Parameter
RAN_NUMBERRAN_SEED
RAN_SEED
Ausnahmen
Funktionsgruppe
QF05BAL Application Log Documentation Vendor Master (General Section)
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 2989 Date: 20240604 Time: 023622 sap01-206 ( 39 ms )