Ansicht
Dokumentation

QF05_RANDOM - Zufallszahlengenerator

QF05_RANDOM - Zufallszahlengenerator

rdisp/max_wprun_time - Maximum work process run time   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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.

  1. 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
  2. Vorbesetzung durch den letzten Aufruf
    Die globale Variable für den Startwert des Funktionsbausteins ist durch den letzten Funktionsaufruf besetzt.
  3. 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.
  4. 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_NUMBER
RAN_SEED
RAN_SEED

Ausnahmen

Funktionsgruppe

QF05

BAL 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 )