生成区间[a,b)中的随机数

来源:互联网 发布:为什么mac截图不在桌面 编辑:程序博客网 时间:2024/05/16 06:29

             生成区间[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;

}

 

 

 

 

 

 

 

原创粉丝点击