shanbin的个人博客分享 http://blog.sciencenet.cn/u/shanbin

博文

Fortran 生成0-1之间的随机数

已有 17283 次阅读 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://wap.sciencenet.cn/blog-1000382-715196.html

上一篇:grep in Linux
下一篇:Shell (csh)下的一些命令
收藏 IP: 123.243.12.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-22 02:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部