生成区间[a,b)中的随机数
code:
// 生成[0,b-a)的随机值
double random(double a, double b)
{
assert(a < b);
double res;
do {
// 在[0,b-a)取随机值
res = ( (double)rand() / (double)(RAND_MAX + 1.0) ) * (b - a);
// 变换到[a,b)
res += a;
} while ( ! (a <= res && res < b) ); //
assert( a <= res && res < b );
return res;
}