Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rand(3c) — AIX PS/2 1.2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought



RAND(3c,L)                  AIX Technical Reference                  RAND(3c,L)



-------------------------------------------------------------------------------
rand, srand



PURPOSE

Generates pseudo-random numbers.

LIBRARY

Standard C Library (libc.a)
Berkeley Compatibility Library (libbsd.a)

SYNTAX



                int rand ( )                void srand (seed);
                                            unsigned int seed;



DESCRIPTION

The rand subroutine generates random numbers using a multiplicative
congruential algorithm.  The random-number generator has a period of 2(32), and
it returns successive pseudo-random numbers in the range from 0 to 2(15) - 1.

The srand subroutine resets the random-number generator to a random starting
point.  The generator is initially seeded with a value of 1.

Note:  The rand subroutine is a very simple random-number generator.  Its
       spectral properties, the mathematical measurement of how "random" the
       number sequence is, are somewhat weak.  See "drand48" or "random,
       srandom, initstate, setstate" for a more elaborate random-number
       generator that has better spectral properties.

COMPATIBILITY NOTE

The 4.3BSD version of rand returns a number in the range 0 to 2(31)-1, rather
than 0 to 2(15)-1, and can be used by compiling with the Berkeley Compatibility
Library (libbsd.a).  There are better random number generators, as noted above,
however rand and srand are the interfaces defined for the ANSI C Library.  The
following functions define the semantics of rand and srand, and are included
here to facilitate porting applications from different implementations:









Processed November 7, 1990        RAND(3c,L)                                  1





RAND(3c,L)                  AIX Technical Reference                  RAND(3c,L)



  static unsigned int next = 1;

  int rand ( )
  {
   next = next * 1103515245 + 12345;
   return ( (next/65536) % 32768);
  }

  void srand (seed)
  int seed;
  {
   next = seed;
  }










































Processed November 7, 1990        RAND(3c,L)                                  2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026