星期二, 10月 31, 2023

2000-05-22 如何於 ILE CL 中產生亂數(CL 也可呼叫)? (RANDOM NUMBER GENERATORS)



════════════════════════════════

易 經

乾為天卦 上乾下乾

釋 :偉大的天,為君的道。(旱象逢河之象)

初九:在潛伏時期,應當隱忍時機,不可妄動。
九二:當偉大人物顯現時,給天下帶來生機與希望,有作為的人,
      應當擁護與支持,同時本身也應當接近群眾,結合有作為的同志。
九三:在成長時期,羽毛未豐,應當奮發努力,但必須戒慎恐懼,以防災禍。
九四:已經到了躍躍欲試的試鍊階段,決定進退應當把握最有利的時機。
九五:已經到了大展鴻圖的極盛時期,應當選賢與能,賢能也應當支持擁護。
上九:盛極而衰,是大自然的法則,應當警惕與節制。

════════════════════════════════

□ Tips :  如何於 ILE CL 中產生亂數(CL 也可呼叫)?
                (RANDOM NUMBER GENERATORS)

--------------------------------
1. CLLE 中有 API  CEERAN0 亂數產生器, 此 API 
   A.  接收種子參數 &SEED 介於 0 - 2,147,483,646 ; 若設 0 , 則
       系統會自動截取系統格林威治時間當種子參數。
   B.  輸出 &RTNVAL 亂數, 是 64-bit 雙倍浮點數字,輸出值
       介於 0 - 1 間, 若 Call API CEERAN0 有問題, 則傳回 -1。

--------------------------------

RANDOM NUMBER GENERATOR IN ILE CL (OPM callable)
/*------------------------------------------------------------------*/
/* Generates a random number between 0 and 1.                       */
/* This is a bound ILE CLP program and requires these compile steps */
/* 1. CRTCLMOD                                                      */
/* 2. CRTPGM RANDOM MODULE(RANDOM) SRVPGM(QLEMF)                    */
/*                                                                  */
/* The first parameter is returned as a FLOAT8 (aka FLOAT BIN(53))  */
/* The second is a seed value. After, the SEED value is modified by */
/* this program.                                                    */
/*------------------------------------------------------------------*/
RANDOM: PGM (&RTNVAL &SEED)
DCL &RTNVAL *CHAR (8)
DCL &SEED *CHAR (4)

CALLPRC PRC(CEERAN0) PARM(&SEED &RTNVAL)
ENDPGM



沒有留言: