chxavrandom.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:1k
源码类别:

Symbian

开发平台:

Visual C++

  1. /*============================================================================*
  2.  *
  3.  * (c) 1995-2002 RealNetworks, Inc. Patents pending. All rights reserved.
  4.  *
  5.  *============================================================================*/
  6.  
  7. #ifndef __RANDOM_H__
  8. #define __RANDOM_H__
  9. #include "chxavvector.h"
  10. class RandomSequence {
  11. public:
  12.     RandomSequence(unsigned int seed = 1, int type=3);
  13.     
  14.     unsigned int Random();
  15.     void SRandom(unsigned int seed);
  16.     static const unsigned int RandomMax;
  17. private:    
  18.     class LCG {
  19.     public:
  20. LCG(unsigned int seed);
  21. unsigned int Random();
  22. void SRandom(unsigned int seed);
  23.     private:
  24. unsigned int m_seed;
  25.     };
  26.     class LFG {
  27.     public:
  28. LFG();
  29. LFG(unsigned int seed,int type);
  30. unsigned int Random();
  31. void SRandom(unsigned int seed);
  32. class StateGen {
  33. public:
  34.     StateGen(unsigned int seed);
  35.     unsigned int Random();
  36. private:
  37.     unsigned int m_seed;    
  38. };
  39. class SeqParams {
  40. public:
  41.     int m_degree;
  42.     int m_seperation;
  43. };
  44. const static SeqParams zm_seqParams[];
  45. int m_degree;
  46. int m_sep;
  47. int m_fptr;
  48. int m_rptr;
  49. CHXAvVector<unsigned int> m_state;
  50.     };
  51.     int m_type;
  52.     LCG m_lcg;
  53.     LFG m_lfg;
  54. };
  55. #endif