主题:徐士良程序集里随机数的产生问题
徐士良fortran算法程序集里有这样一段程序,是产生50个均值为1,方差为1.5^2的正态分布随机数的,程序如下:
DOUBLE PRECISION R
REAL NGRN1,A(50)
R=5.0
U=1.0
G=1.5
N=50
DO 10 I=1,100
10 A(I)=NGRN1(U,G,R)
WRITE(*,*)
WRITE(*,20)(A(I),I=1,50)
20 FORMAT(1X,5F10.6)
END
其中NGRN1就是产生随机数的函数,U是均值,G是方差,R是随机数种子。
问题来了,我认为最后产生的50个随机数肯定都一样,是我想太多还是源程序有问题?
DOUBLE PRECISION R
REAL NGRN1,A(50)
R=5.0
U=1.0
G=1.5
N=50
DO 10 I=1,100
10 A(I)=NGRN1(U,G,R)
WRITE(*,*)
WRITE(*,20)(A(I),I=1,50)
20 FORMAT(1X,5F10.6)
END
其中NGRN1就是产生随机数的函数,U是均值,G是方差,R是随机数种子。
问题来了,我认为最后产生的50个随机数肯定都一样,是我想太多还是源程序有问题?