man(1) Manual page archive

     RAND(2)                                                   RAND(2)

          rand, lrand, frand, nrand, lnrand, srand - random number

          int    rand(void)

          long   lrand(void)

          double frand(void)

          int    nrand(int val)

          long   lnrand(long val)

          void   srand(long seed)

          Rand returns a uniform pseudo-random number x, 0<=x<2^15.

          Lrand returns a uniform long x, 0<=x<2^31.

          Frand returns a uniform double x, 0.0<=x<1.0.  This function
          calls lrand twice to generate a number with as many as 62
          significant bits of mantissa.

          Nrand returns a uniform integer x, 0<=x<val.  Lnrand is the
          same, but returns a long.

          The algorithm is additive feedback with:

               x[n] = (x[n-273] + x[n-607]) mod 2^31.

          giving a period of 2^30 * (2^607 - 1).

          The generators are initialized by calling srand with what-
          ever you like as argument.  To get a different starting
          value each time,


          will work as long as it is not called more often than once
          per second.  Calling


          will initialize the generators to their starting state.