組込みサブルーチン:1 つの擬似乱数または擬似乱数の配列を返します。
形式
CALL RANDOM_NUMBER (harvest)
harvest
(出力) 実数型。これは スカラまたは配列変数です。範囲 0 <= x < 1 に一様分布する擬似乱数の値に設定されます。
RANDOM_NUMBER が使用する擬似乱数生成器に対する種子は,RANDOM_SEED で設定したり,問い合わせたりすることができます。RANDOM_SEED が使われなければ,プロセッサーはプロセッサーに依存する値を RANDOM_NUMBER の種子に設定します。
RANDOM_NUMBER 生成器は,約 10**18 の周期を生成し,(0, 1) の一様分布になるように実数擬似乱数を生成するために,2 つの生成器を一緒に使用します。2 つの整数種子を受け付けます。最初の種子は範囲 [1, 2147483562] に縮小され,第 2 種子は範囲 [1, 2147483398] に縮小されます。これは,生成器が 2 つの 31 ビット種子を効果的に使用することを意味しています。
アルゴリズムに関する詳細は,以下を参照してください。
『Efficient and Portable Combined Random Number Generators』(Pierre L'ecuyer 著,Communications of the ACM vol 31 num 6 June 1988)
『A Guide to Simulation』(Bratley, P., Fox, B. L., および Schrage, L. E. 著,Springer-Verlag New York, N. Y. 2nd ed. 1987)
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
DRAND, DRANDM,IRAND, IRANDM,RAN,RAND, RANDOM,RANDOM,RANDOM_SEED,SEED
例
次に例を示します。
REAL Y, Z (5, 5) ! 擬似乱数で Y を初期化 CALL RANDOM_NUMBER (HARVEST = Y) CALL RANDOM_NUMBER (Z)
Y と Z には一様分布する乱数が格納されます。
以下に他の例を示します。
REAL x, array1 (5, 5) CALL RANDOM_SEED() CALL RANDOM_NUMBER(x) CALL RANDOM_NUMBER(array1)
以下に別の例も示します。
program testrand intrinsic random_seed, random_number integer size, seed(2), gseed(2), hiseed(2), zseed(2) real harvest(10) data seed /123456789, 987654321/ data hiseed /-1, -1/ data zseed /0, 0/ call random_seed(SIZE=size) print *,"size ",size call random_seed(PUT=hiseed(1:size)) call random_seed(GET=gseed(1:size)) print *,"hiseed gseed", hiseed, gseed call random_seed(PUT=zseed(1:size)) call random_seed(GET=gseed(1:size)) print *,"zseed gseed ", zseed, gseed call random_seed(PUT=seed(1:size)) call random_seed(GET=gseed(1:size)) call random_number(HARVEST=harvest) print *, "seed gseed ", seed, gseed print *, "harvest" print *, harvest call random_seed(GET=gseed(1:size)) print *,"gseed after harvest ", gseed end program testrand