randgen.cpp

来自「C++&datastructure书籍源码,以前外教提供现在与大家共享」· C++ 代码 · 共 57 行

CPP
57
字号
#include <time.h>                // for time()#include <stdlib.h>              // for rand/srand#include "randgen.h"#include <cmath>int RandGen::ourInitialized = 0;void RandGen::SetSeed(int seed)// postcondition: system srand() used to initialize seed//                once per program (this is a static function)    {    if (0 == ourInitialized)    {   ourInitialized = 1;   // only call srand once		srand(seed);          // randomize
		rand(); rand(); rand();    }}RandGen::RandGen()// postcondition: system srand() used to initialize seed//                once per program     {    if (0 == ourInitialized)    {   ourInitialized = 1;          // only call srand once        srand(unsigned(time(0)));    // randomize
		rand(); rand(); rand();    }}int RandGen::RandInt(int max)// precondition: max > 0// postcondition: returns int in [0..max)     {      return int(RandReal() * max);}int RandGen::RandInt(int low, int max)// precondition: low <= max     // postcondition: returns int in [low..max]     {     return low + RandInt(max-low+1);}double RandGen::RandReal()// postcondition: returns double in [0..1)     {         return rand() / (double(RAND_MAX) + 1); }double RandGen::RandReal(double low, double high){    double width = fabs(high-low);    double thelow = low < high ? low : high;    return RandReal()*width + thelow;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?