/* RAN0 U[0,1) */ /* Notice: Initial seed of this version is based on rndu for simplicity. */ new; cls; nn=10000; /* Up to 10000 in Light version of GAUSS */ x=ran0(nn); library pgraph; graphset; call hist(x,29); proc ran0(nn); local a,c,m,x,i; a=16807; c=0; m=2^31-1; x=zeros(nn,1); /* seed */ x[1]=floor(rndu(1,1)*(m-1))+1; /* integer between 1 and m-1 */ /* LCG */ i=1; do while i<=nn-1; x[i+1]=(a*x[i]+c)%m; i=i+1; endo; x=x/m; /* If you want to avoid 0's, replace this line by x=(x+1)/(m+1); */ retp(x); endp;