科学网 | 您所在的位置:网站首页 › 生成0和1的随机数是多少 › 科学网 |
Fortran 生成0-1之间的随机数
已有 17446 次阅读 2013-8-8 16:16 |个人分类:Fortran学习|系统分类:科研笔记 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). https://blog.sciencenet.cn/blog-1000382-715196.html 上一篇:grep in Linux下一篇:Shell (csh)下的一些命令 收藏 IP: 123.243.12.*| 热度| |
CopyRight 2018-2019 实验室设备网 版权所有 |