code 如下:
#include <cstdlib>
std::string GetRandom(double fLow, double fHigh)
{
double fRandom;
fRandom = (double)rand()/((double)RAND_MAX + (double)1);
fRandom *= (fHigh - fLow);
fRandom += fLow;
// ensure fRandom is in the range
if (fRandom < fLow)
fRandom = fLow;
if (fRandom > fHigh)
fRandom = fHigh;
char cRandom[32] = {0};
sprintf_s(cRandom, "%.4lf", fRandom);
std::string sRandom = cRandom;
return sRandom;
}
但是上面的方法有一个缺点,即每次生成的随机数都是一样的。为了防止随机数每次重复,常常使用系统时间来初始化,即使用time
函数来获得系统时间,增加以下code:
#include <ctime>
srand(time(NULL)); // Produce seed for random number
这样每次生成的随机数都会有变化。RAND_MAX
我的 PC 上是 32767