home *** CD-ROM | disk | FTP | other *** search
/ Fatal Distractions! / fataldistractions.bin / chap01 / adventur / ran.for < prev    next >
Text File  |  1990-11-11  |  607b  |  22 lines

  1.       INTEGER FUNCTION RAN(RANGE)
  2.       
  3. C  SINCE THE RAN FUNCTION IN LIB40 SEEMS TO BE A REAL LOSER, WE'LL USE ONE OF
  4. C  OUR OWN.  IT'S BEEN RUN THROUGH MANY OF THE TESTS IN KNUTH, VOL. 2 AND
  5. C  SEEMS TO BE QUITE RELIABLE.  RAN RETURNS A VALUE UNIFORMLY SELECTED
  6. C  BETWEEN 0 AND RANGE-1.  NOTE RESEMBLANCE TO ALG USED IN WIZARD.
  7.  
  8.       IMPLICIT INTEGER*4 (A-Z)
  9.       DATA R/0/
  10.       
  11.       D=1
  12.       IF(R.NE.0) GOTO 1
  13.       CALL DATIME(D,T)
  14.       R=18*T+5
  15.       
  16.       D=1000+MOD(D,1000)
  17.     1 DO 2 T=1,D
  18.     2 R=MOD(R*1021,1048576)
  19.       RAN=(RANGE*R)/1048576
  20.       RETURN
  21.       END
  22.