RANDOM_NUMBER

組込みサブルーチン: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 ビット種子を効果的に使用することを意味しています。

アルゴリズムに関する詳細は,以下を参照してください。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

DRAND, DRANDMIRAND, IRANDMRANRAND, RANDOMRANDOMRANDOM_SEEDSEED

次に例を示します。

	REAL Y, Z (5, 5)
	! 擬似乱数で Y を初期化
	CALL RANDOM_NUMBER (HARVEST = Y)
	CALL RANDOM_NUMBER (Z)

YZ には一様分布する乱数が格納されます。

以下に他の例を示します。

	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