1

我正在测试链接中提到的 RNG 代码(fortran 77 代码):
https
://www.cisl.ucar.edu/zine/96/spring/articles/3.random-6.html 它应用了 Park & Miller 算法.

程序的函数调用是

call srand(seed)  
x=rand()  

然而,该程序似乎没有响应 srand() 的播种,即 x 值不受初始播种的影响,并且始终等于 ~0.218。我怀疑这与公共块和数据块的定义有关,因为x的值相当于将种子放置为123456789,这是数据块中定义的初始化值。

有任何想法吗?

我正在用 gfortran 编译。

4

1 回答 1

1

好的,问题是原来的srandrand可能会被调用。我将函数重命名为srand2and rand2,一切都开始按预期工作。

对于seed = 1结果是7.82636926E-06,对于seed = 2结果是1.56527385E-05。在 gfortran 和 Intel 的 fortran 中检查了它。

于 2014-10-06T20:47:04.223 回答