ASTRA Geschrieben 3. November 2003 Geschrieben 3. November 2003 moin moin, könnte mir jemand bei der erzeugung von zufallszahlen in abap weiterhelfen? wenn möglich ein kompletter quelltext. weil mit den funktionsbausteinen komm ich nicht weiter. bzw. ich hab schon ziemlich viel ausprobiert auch mit dem initialisierungsbaustein am anfang, aber das will nicht so richtig. der gibt immer die gleiche zahl aus.:confused:
FinalFantasy Geschrieben 3. November 2003 Geschrieben 3. November 2003 Hatte das gleiche Problem, aber niemand in meiner Abteilung konnte mir helfen. Ne Lösung würde mich ebenfalls interessieren.
Nixaja Geschrieben 3. November 2003 Geschrieben 3. November 2003 Hallo Astra, Welchen Funktionsbaustein nutzt du zum generieren der Zufallszahlen? Ich habs grad mit "QF05_RANDOM_INTEGER" ausprobiert. Dieser FB liefert tatsächlich als ersten Wert immer die 3 (frag mich net warum). Du könntest dies allerdings mit folgendem Trick umgehen: Beim 2. Aufruf des FBs wird nämlich eine zufällige Zahl ausgegeben: REPORT zlk_zufallszahl . * Deklaration * DATA: i_max TYPE qf00-ran_int, i_min TYPE qf00-ran_int, i_x1 TYPE qf00-ran_int, i_x2 TYPE qf00-ran_number. * Implementierung * START-OF-SELECTION. i_min = 1. i_max = 6. DO 2 TIMES. CALL FUNCTION 'QF05_RANDOM_INTEGER' EXPORTING ran_int_max = i_max ran_int_min = i_min IMPORTING ran_int = i_x1. ENDDO. WRITE i_x1. Ich hoffe, das hilft dir weiter. Falls du noch Fragen hast... Nixaja
given_to_fly Geschrieben 3. November 2003 Geschrieben 3. November 2003 hi Wir haben mal ein kleines ABAP Programm mit Hilfe des TIMESTAMPS geschrieben Morgen wenn ich uffer Arbeit bin suche ich mal den Stück Code
Nixaja Geschrieben 4. November 2003 Geschrieben 4. November 2003 Original geschrieben von jsk hi Wir haben mal ein kleines ABAP Programm mit Hilfe des TIMESTAMPS geschrieben Morgen wenn ich uffer Arbeit bin suche ich mal den Stück Code Hallo jsk, was genau haben Zeitstempel mit Zufallszahlen zu tun? :confused: Zeitstempel sind doch dazu da, eine für dieses System eindeutige Zahl zu erzeugen. Oder haben TIMESTAMPS noch andere Funktionen? In der Hilfe hab ich nix dazu gefunden... Nixaja
FinalFantasy Geschrieben 4. November 2003 Geschrieben 4. November 2003 Der Timestamp is jedes mal anders, wenn du ihn abfrägst, weil ja da die aktuelle Systemzeit drin steht, und die is ja nie gleich. Wenn du die zum Initialisieren vom Zufallszahlengenerator nimmst, hast du nie den gleichen Startwert, und solltest so halbwegs echte Zufallszahlen kriegen. So gehts zumindest in sämtlichen Programmiersprachen, die ich kenne. Habs in ABAP auch so probiert, da hats aber leider nicht funktioniert.
ASTRA Geschrieben 4. November 2003 Autor Geschrieben 4. November 2003 sagt mal wie konvertiere ich "type timestampl" zu "LIKE QF00-RAN_SEED" ?????
ASTRA Geschrieben 4. November 2003 Autor Geschrieben 4. November 2003 so ich denke das kommt der lösung am nächsten: data: ergebnis LIKE QF00-RAN_INT. do 6 times. CALL FUNCTION 'QF05_RANDOM' * EXPORTING * RAN_SEED = * IMPORTING * RAN_NUMBER = * RAN_SEED = . CALL FUNCTION 'QF05_RANDOM_INTEGER' EXPORTING RAN_INT_MAX = 49 RAN_INT_MIN = 1 IMPORTING RAN_INT = ergebnis * EXCEPTIONS * INVALID_INPUT = 1 * OTHERS = 2 . write ergebnis. enddo.
banane-banane Geschrieben 4. November 2003 Geschrieben 4. November 2003 Hallo, wir habe mal ein Würfelprogramm geschrieben, was eine Zufallszahl von 1 - 6 ermittelt. (Deshalb wird im Beispiel unten mit 5 multipliziert) REPORT WUERFEL . data: gf_stamp(11) type p decimals 7, gf_ergeb type n, gf_sekbt(2) type n, gf_hilf(22) type n. Start-of-selection. get time stamp field gf_stamp. write gf_stamp to gf_hilf. move gf_hilf+15(2) to gf_sekbt. gf_ergeb = gf_sekbt * 5 / 99 + 1. write gf_ergeb. Gruß Banane-Banane
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden