Random.h
上传用户:kellyonhid
上传日期:2013-10-12
资源大小:932k
文件大小:1k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. //###############################################################
  2. // Random.h
  3. // Kari Pulli
  4. // 02/12/1996
  5. //###############################################################
  6. #ifndef _Random_h
  7. #define _Random_h
  8. #include <sys/types.h>
  9. #include <time.h>
  10. #include <stdlib.h>
  11. #ifdef WIN32
  12. #define srand48 srand
  13. static double drand48 (void)
  14. {
  15. return rand() / (float)RAND_MAX;
  16. }
  17. #endif
  18. class Random {
  19. private:
  20.   static long TimeSeed(void)
  21.     { return (long) time(NULL); }
  22.   
  23. public:
  24.   Random(unsigned long initSeed = TimeSeed())
  25.     { srand48(initSeed); }
  26.   ~Random(void) {}
  27.   void setSeed(unsigned long newSeed = TimeSeed())
  28.     { srand48(newSeed); }
  29.   double operator()()
  30.     // return a random number [0.0,1.0)
  31.     { return drand48(); }
  32.   double operator()(double fact)
  33.     // return a random number [0.0,fact)
  34.     { return fact*drand48(); }
  35. };
  36. #endif