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