/* Fibonacci U(0,1) Sequence */ /* (excluding 0 at the beginning) */ new; cls; k=20; /* up to k=20 in Light version of GAUSS (i.e. 6764) */ x=Fibonacci1D(k); print x; library pgraph; graphset; call hist(x,19); proc Fibonacci1D(k); local Fk_1,Fk,x,i; if k<=2 or k-floor(k)/=0; errorlog "ERROR: Parameter k must be an integer which is greater than 3."; retp("."); endif; Fk_1=fibonacci(k-1); Fk=fibonacci(k); i=seqa(1,1,Fk-1); x=(i*Fk_1/Fk)-floor(i*Fk_1/Fk); retp(x); endp; proc fibonacci(k); /* This procedure is for Finobacci sequence itself. */ local y,i; y=zeros(k,1); y[1]=1; y[2]=1; i=3; do while i<=k; y[i]=y[i-1]+y[i-2]; i=i+1; endo; retp(y[k]); endp;