srand( (unsigned)time( NULL ));究竟是什么意思 ?
srand((unsigned)time(NULL));究竟是什么意思?哪位帮忙讲一下随机数和伪随机数,有没有哪个网站上讲啊,我找不到...
srand( (unsigned)time( NULL ));究竟是什么意思 ?哪位帮忙讲一下随机数和伪随机数,有没有哪个网站上讲啊,我找不到
展开
2个回答
2015-07-07
展开全部
srand((unsigned)time(NULL))是初始化随机函数种子:
1、是拿当前系统时间作为种子,由于时间是变化的,种子变化,可以产生不相同的随机数。
计算机中的随机数实际上都不是真正的随机数,如果两次给的种子一样,是会生成同样的随机序列的。 所以,一般都会以当前的时间作为种子来生成随机数,这样更加的随机。
2、使用时,参数可以是unsigned型的任意数据,比如srand(10);
3、如果不使用srand,用rand()产生的随机数,在多次运行,结果是一样的。
参考如下:
void test_rand(void)
{
unsigned long n;
srand((unsigned)time(NULL));
for(int i = 0; i < 100; i++)
{
n = rand();
printf("d\n", n);
}
}
1、是拿当前系统时间作为种子,由于时间是变化的,种子变化,可以产生不相同的随机数。
计算机中的随机数实际上都不是真正的随机数,如果两次给的种子一样,是会生成同样的随机序列的。 所以,一般都会以当前的时间作为种子来生成随机数,这样更加的随机。
2、使用时,参数可以是unsigned型的任意数据,比如srand(10);
3、如果不使用srand,用rand()产生的随机数,在多次运行,结果是一样的。
参考如下:
void test_rand(void)
{
unsigned long n;
srand((unsigned)time(NULL));
for(int i = 0; i < 100; i++)
{
n = rand();
printf("d\n", n);
}
}
展开全部
重新设置一个随机种子。。。
如果没有srand((unsigned)time(NULL));运行以下程序,每次输出结果会都是一样的。。。。。
void test_rand(void)
{
unsigned long n;
srand((unsigned)time(NULL));
for(int i = 0; i < 100; i++)
{
n = rand();
printf("%10d\n", n);
}
}
如果没有srand((unsigned)time(NULL));运行以下程序,每次输出结果会都是一样的。。。。。
void test_rand(void)
{
unsigned long n;
srand((unsigned)time(NULL));
for(int i = 0; i < 100; i++)
{
n = rand();
printf("%10d\n", n);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询