rand.c
上传用户:baixin
上传日期:2008-03-13
资源大小:4795k
文件大小:2k
开发平台:

MultiPlatform

  1. /* rand.c - rand, srand functions for stdlib  */
  2. /* Copyright 1992-1993 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,08feb93,jdi  documentation cleanup for 5.1.
  7. 01b,20sep92,smb  documentation additions.
  8. 01a,19jul92,smb  written and documented.
  9. */
  10. /*
  11. DESCRIPTION
  12. INCLUDE FILES: stdlib.h
  13. SEE ALSO: American National Standard X3.159-1989
  14. NOMANUAL
  15. */
  16. #include "vxWorks.h"
  17. #include "stdlib.h"
  18. ulong_t _Randseed = 1;
  19. /*******************************************************************************
  20. *
  21. * rand - generate a pseudo-random integer between 0 and RAND_MAX  (ANSI)
  22. *
  23. * This routine generates a pseudo-random integer between 0 and RAND_MAX.
  24. * The seed value for rand() can be reset with srand().
  25. *
  26. * INCLUDE FILES: stdlib.h 
  27. *
  28. * RETURNS: A pseudo-random integer.
  29. *
  30. * SEE ALSO: srand()
  31. */
  32. int rand (void) 
  33.     {
  34.     _Randseed = _Randseed * 1103515245 + 12345;
  35.     return (uint_t) (_Randseed/65536) % (RAND_MAX + 1);
  36.     }
  37. /*******************************************************************************
  38. *
  39. * srand - reset the value of the seed used to generate random numbers (ANSI)
  40. *
  41. * This routine resets the seed value used by rand().  If srand() is then
  42. * called with the same seed value, the sequence of pseudo-random numbers is
  43. * repeated.  If rand() is called before any calls to srand() have been made,
  44. * the same sequence shall be generated as when srand() is first called with
  45. * the seed value of 1.
  46. *
  47. * INCLUDE FILES: stdlib.h 
  48. *
  49. * RETURNS: N/A
  50. *
  51. * SEE ALSO: rand()
  52. */
  53. void * srand 
  54.     (
  55.     uint_t seed /* random number seed */
  56.     ) 
  57.     {
  58.     _Randseed = seed;
  59.     return (void *)0;
  60.     }