home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 06_07 / ckurs / rand.c next >
Encoding:
C/C++ Source or Header  |  1988-03-30  |  884 b   |  33 lines

  1. /*-----------------------------------------------------*/
  2. /*                       RAND.C                        */
  3. /*               Zufallszahlen-Generator               */
  4. /*-----------------------------------------------------*/
  5.  
  6. static unsigned int seed;  /* Merker für Zufallszahl */
  7.                            /* "Privat" in Modul !    */
  8.  
  9. double rand(void){
  10.  
  11. # define c 824.0
  12. # define k 0.0
  13. # define m 10657.0
  14.   double s;
  15.  
  16. /* Real-Arithmerik um Integer-Overflow zu vermeiden! */
  17.   s = (double)seed*c + k;
  18.   s = s - (double)(((int)(s/m)) * m);   /* s mod m */
  19.   seed = (unsigned int)s;
  20.   return(s/m);
  21. }
  22.  
  23. void randomize(init)
  24.   int init;
  25. {
  26.   if (init < 0)
  27.     seed = (unsigned int)(-init);
  28.   else
  29.     seed = (unsigned int)init;
  30. }
  31. /*-----------------------------------------------------*/
  32. /*                   Ende RAND.C                       */
  33.