我用的是Microsoft Visual Studio的fortran编译器。这里面生成随机数的方式就是用call random_numbe(x)的方式来生成一个0到1之间的随机实数的。如下可以生成1到4之间的随机整数:
[Fortran] 纯文本查看 复制代码 program fc
implicit none
integer::I,J,k
real(kind=8)::x
i=0
do
if(I.gt.1000)exit
call random_seed()
call random_number(x)
k=1+anint(3*x)
write(*,*)k
I=I+1
enddo
pause
end
至于这种方法在你所用的编译器上是否能用就不知道了。
我曾经用这个随机函数来算圆周率,算了一天左右,也只算到小数点后的第八位,由此看来,生成的伪随机数分布还是差强人意。 |