real function ran (i) integer*4 i
重复调用 ran 可生成均匀分布的随机数。
请参见 lcrans(3M)。
该范围包括 0.0,不包括 1.0。该算法是一种常规同余类型的乘法随机数生成器。一般而言,在执行调用程序的过程中设置一次 i 值。i 的初始值应是一个大奇数整数。每次调用 ran 将返回该序列中的下一个随机数。
要在每次运行调用程序时返回不同的随机数序列,必须在每次运行时将参数 i 设置为不同的初始值。
用法:
real r, ran
integer*4 i
i = ...
...
r = ran(i)
示例:
demo% cat ran1.f
* ran1.f <-- Generate random numbers
integer*4 i, n
real r(10)
i = 760013
do n = 1, 10
r(n) = ran ( i )
end do
write ( *, "( 5 f11.6 )" ) r
end
demo% f77 -silent ran1.f
demo% a.out
0.222058 0.299851 0.390777 0.607055 0.653188
0.060174 0.149466 0.444353 0.002982 0.976519
demo%
libfui.a
《数值计算指南》中的 lcrans、addrans 和 shufrans