home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c065 / 1.ddi / CLIB1.ZIP / RAND.C < prev    next >
Encoding:
C/C++ Source or Header  |  1990-06-07  |  2.2 KB  |  70 lines

  1. /*-----------------------------------------------------------------------*
  2.  * filename - rand.c
  3.  *
  4.  * function(s)
  5.  *        srand - initializes random number generator
  6.  *        rand  - random number generator
  7.  *-----------------------------------------------------------------------*/
  8.  
  9. /*[]------------------------------------------------------------[]*/
  10. /*|                                                              |*/
  11. /*|     Turbo C Run Time Library - Version 3.0                   |*/
  12. /*|                                                              |*/
  13. /*|                                                              |*/
  14. /*|     Copyright (c) 1987,1988,1990 by Borland International    |*/
  15. /*|     All Rights Reserved.                                     |*/
  16. /*|                                                              |*/
  17. /*[]------------------------------------------------------------[]*/
  18.  
  19. #include <stdlib.h>
  20.  
  21. #define MULTIPLIER    0x015a4e35L
  22. #define INCREMENT    1
  23.  
  24. static    long    Seed = 1;
  25.  
  26. /*---------------------------------------------------------------------*
  27.  
  28. Name        srand - initializes random number generator
  29.  
  30. Usage        void srand(unsigned seed);
  31.  
  32. Prototype in    stdlib.h
  33.  
  34. Description    see rand below
  35.  
  36. Return value    Nothing
  37.  
  38. *---------------------------------------------------------------------*/
  39. void srand(unsigned seed)
  40. {
  41.     Seed = seed;
  42. }
  43.  
  44.  
  45. /*---------------------------------------------------------------------*
  46.  
  47. Name            rand - random number generator
  48.  
  49. Usage           int rand(void);
  50.  
  51. Related
  52. functions usage void srand(unsigned seed);
  53.  
  54. Prototype in    stdlib.h
  55.  
  56. Description     rand uses a multiplicative congruential random number
  57.         generator with period 2^32 to return successive pseudo-
  58.         random numbers in the range from 0 to 2^15 - 1.
  59.  
  60.                 The generator is reinitialized by calling srand with an
  61.                 argument value of 1. It can be set to a new starting point by
  62.                 calling srand with a given seed number.
  63.  
  64. *---------------------------------------------------------------------*/
  65. int rand(void)
  66. {
  67.     Seed = MULTIPLIER * Seed + INCREMENT;
  68.     return((int)(Seed >> 16) & 0x7fff);
  69. }
  70.