如何每次调用函数时取到不同的随机数?

[复制链接]
查看11 | 回复2 | 2009-6-18 10:24:57 | 显示全部楼层 |阅读模式
#include
#include
#include
double Random(double low,double high)
{
double d;
srand((unsigned)time(NULL));
d=(double)rand()/((double)RAND_MAX+1);
return(low+d*(high-low));
}
main()
{
int i; double n;
for(i=1;i<20;i++)
{
n=Random(1,1000);
printf("%f\n",n);
}
getch();
}
为什么输出的20个数都是一样的?
我把它加在main的for前面了,但是还是没用呀~~~我要做多次取随机的一个概率问题,如果用for延迟的话程序就会很慢了呀~~怎么办呀~~

回复

使用道具 举报

千问 | 2009-6-18 10:24:57 | 显示全部楼层
因为程序运行的太快srand((unsigned)time(NULL));该函数里面的参数值始终是一样的导致随机函数的结果也是一样的你在srand((unsigned)time(NULL));后面加个时延就好了...
回复

使用道具 举报

千问 | 2009-6-18 10:24:57 | 显示全部楼层
srand((unsigned)time(NULL)); 放在主函数中的for语句前,srand((unsigned)time(NULL));
在程序的一次运行中,这句话只需要执行一次就够了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行