产生随机数(整数和浮点数)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

#include <iostream>

#include <cstdlib>

#include <ctime>

using namespace std;

//产生随机数(浮点数),位于区间[a,b]或者[b,a]

double randDbl(double a,double b)

{

return a + static_cast<double>(rand())/RAND_MAX*(b-a);

}

//产生随机数(整数),位于区间[a,b]或者[b,a]

int randInt(int a, int b)

{

if(a<b)

return a + rand()%(b-a+1);

else if(a>b)

return b + rand()%(a-b+1);

else // a==b

return a;

}

int main(int argc, char *argv[])

{

int a=1, b=6;

double c=1.0, d=6.0;

srand(time(0)); //保证每次运行产生的随机数都不一样

//测试随机数的产生是否正确

for(int i=0; i<10000; ++i)

{

if( randInt(a,b)<a || randInt(a,b) >b)

cout << "randInt(" << a << "," << b << ") is ERROR\n";

if( randDbl(c,d)<c || randDbl(c,d) >d)

cout << "randDbl(" << c << "," << d << ") is ERROR\n";

}

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航