home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / mint / mntdoc01.zoo / mintdoc / cat3 / setstate.3 < prev    next >
Encoding:
Text File  |  1993-03-03  |  2.9 KB  |  133 lines

  1.  
  2.  
  3.  
  4. RANDOM(3)           MINTLIB LIBRARY FUNCTIONS           RANDOM(3)
  5.  
  6.  
  7. N✓NA✓AM✓ME✓E
  8.        random,  srandom,  initstate,  setstate  - improved random
  9.        number generator; routines for changing generators
  10.  
  11. S✓SY✓YN✓NO✓OP✓PS✓SI✓IS✓S
  12.        #include <unistd.h>
  13.  
  14.        long random(void);
  15.  
  16.        void srandom (unsigned int seed);
  17.  
  18.        char * initstate (unsigned int seed, char *arg_state, int n);
  19.  
  20.        char * setstate (char *arg_state);
  21.  
  22. D✓DE✓ES✓SC✓CR✓RI✓IP✓PT✓TI✓IO✓ON✓N
  23.        random is a good random number generator returning pseudo-
  24.        random numbers in the range from 0 to 2^31 - 1. The random
  25.        number generator has a very large period.
  26.  
  27.        random/srandom have (almost) the same calling sequence and
  28.        initialization properties as rand/srand. The difference is
  29.        that rand produces a much less random sequence, while  all
  30.        the bits generated by random are useable.
  31.  
  32.        The  initstate  routine allows a state array, passed in an
  33.        argument, to be initialized for future use.  The  size  of
  34.        the  state array (in bytes) is used by initstate to decide
  35.        how sophisticated a random number generator it should  use
  36.        -  the  more state, the better the random numbers will be.
  37.        Good values for the amount of state  information  are  32,
  38.        64,  128  and  256  bytes. The seed for the initialization
  39.        (which specifies a starting point for  the  random  number
  40.        sequence,  and  provides for restarting at the same point)
  41.        is also an argument. initstate returns a  pointer  to  the
  42.        previous state information array.
  43.  
  44.        Once a state array has been initialized, the setstate rou-
  45.        tine provides for rapid switching  between  states.   set-
  46.        state  returns  a pointer to the previous state array; its
  47.        argument state array is used  for  further  random  number
  48.        generation until the next call to initstate or setstate.
  49.  
  50.        Once  a  state  array  has  been  initialized,  it  may be
  51.        restarted at a different point either by calling initstate
  52.        (with  the desired seed, the state array, and its size) or
  53.        by calling both setstate (with the state array) and  sran-
  54.        dom (with the desired seed). The advantage of calling both
  55.        setstate and srandom is that the size of the  state  array
  56.        does not have to be remembered after it is initialized.
  57.  
  58. S✓SE✓EE✓E A✓AL✓LS✓SO✓O
  59.        r✓ra✓an✓nd✓d(✓(3✓3)✓),✓, s✓sr✓ra✓an✓nd✓d(✓(3✓3)✓)
  60.  
  61.  
  62.  
  63.  
  64. MiNT docs 0.1              3 March 1993                         1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. RANDOM(3)           MINTLIB LIBRARY FUNCTIONS           RANDOM(3)
  71.  
  72.  
  73. N✓NO✓OT✓TE✓ES✓S
  74.        See  the  source  file (random.c) for complete information
  75.        and comments on the workings of the random number  genera-
  76.        tor.
  77.  
  78.        random is slower than rand.
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130. MiNT docs 0.1              3 March 1993                         2
  131.  
  132.  
  133.