#ifndef _MYRAND_H #define _MYRAND_H #include // for INT_MAX // designed for implementation independent randomization // if all system dependent calls included in this class, then // other classes can make use of this class in independent manner // // RandGen() --- constructor sets seed of random # generator // once per program, not per class/object // // RandInt(int) // RandInt(int,int) - return random integer in range [0..max) when one // parameter used, [low..max] when two parameters used // // examples: rnd.RandInt(6) is random integer [0..5] or [0..6) // rnd.RandInt(3,10) is random integer [3..10] // rnd.RandInt() is random integer [0..INT_MAX) // // RandReal() -- returns random double in range [0..1) class RandGen { public: RandGen(); // set seed for all instances int RandInt(int max = INT_MAX); // returns int in [0..max) int RandInt(int low, int max); // returns int in [low..max] double RandReal(); // returns double in [0..1) private: static int initialized; // for 'per-class' initialization }; #endif /* _MYRAND_H not defined */