一个关于产生随机数的问题
int i;
for(i=0;i<10;i++)
{
int temp=rand();
printf("%d\n",temp);
}
为什么每次运行程序,产生的数都是一样的呢??
问题点数:20、回复次数:4Top
1 楼wanamaker()回复于 2004-08-03 11:47:33 得分 10
需要设随机数种子
int i;
srand( (unsigned)time( NULL ) );
for(i=0;i<10;i++)
{
int temp=rand();
printf("%d\n",temp);
}
Top
2 楼mycjing()回复于 2004-08-03 11:47:38 得分 2
需要设置随即种子。Top
3 楼bianliuwei(零点起飞)回复于 2004-08-03 11:53:30 得分 4
来迟了,还要加个
#include <time.h>Top
4 楼photnman(唐唐)回复于 2004-08-03 12:41:29 得分 4
你没有变化的种子,直接调用rand()当然得到的数一样
需要用strand()得到变化的种子
int main (void)
{
srand((unsigned)time(NULL));
int randnum = rand();
printf("%d\n",randnum);
return 0;
}
但是这种伪随机序列规律性还是比较强,如果有特殊要求,可以用别的算法
Top




