C++中随机数问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 13:18:04
范例
/* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/
#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}
请问该程序中的srand((int)time(0));语句有什么用出?请高手详细解释下啊,呵呵.
还有就是如果我不用这种算法,如何定义RAND_MAX为10使得随机输出0-10的整数...

小弟初学c++,请高手指点,谢谢....

srand函数是随机数发生器的初始化函数,原型:
void srand(unsigned seed);
它需要提供一个种子,如:
srand(1); //直接使用1来初始化种子

不过常常使用系统时间来初始化,即使用time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在时间所持续的秒数,然后将time_t型数据转化为(int)型在传给srand函数,即:
srand((int)time(0));