||
The program for generating a random number between 0 - 1
random_seed()
random_number()
1. 根据seed大小生成一个0-1的随机数列表,random_number从中按顺序读取列表中的随机数。
2. 因此,首先需要产生seed,指定列表中的位置()seed范围『1,2147483398』
常用方法一: call random_seed(),根据系统随机生成,但是循环特别快,将指定列表相同的位置。
常用方法二:call random_seed(time),根据系统时间生存seed
call date_and_time(value=time)
seed=time(4)*(360000*time(5)+6000*time(6)+100*time(7)+time(8))
call random_seed(put=seed)
(data_and_time(value=time),读取系统时间,赋值给8位数组time(8),time(1-3)为年月日,time(4-8)为时分秒及N*0.01秒)
seed()根据编译器的不同,为不同数组,
seed_size is 4 for G95, 1 for LF95, and 2 for Intel ifort
因此,可以通过 rand_seed(size=seed_size),allocate(seed(seed_size))来确定。例如,如果编译器为ifort,seed有效长度为2,因此,seed=【1,1,0】和seed=【1,1,2】结果相同。
查询当前seed命令为,random_seed(get=seed)
根据seed大小,得到当前列表位置后,可以用命令random_number(variables) 生成随机数variables,或者随机数数组variables(i).
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-22 02:20
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社