c语言随机函数时间种子,c语言时间函数随机数

C语言问题,怎样利用系统时间作为随机数的种子?

C语言中,设置随机数种子需要包含头文件stdlib.h,利用系统时间需要包含头文件time.h。

成都创新互联自2013年起,是专业互联网技术服务公司,拥有项目网站制作、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元芷江做网站,已为上家服务,为芷江各地企业和个人服务,联系电话:18982081108

设置随机数种子的函数原型为:void srand(unsigned int seed);

利用系统时间作为随机数的种子代码如下:

#include stdlib.h

#include time.h

int main(){

srand((unsigned)time(NULL)); // 利用系统时间作为随机数的种子

return 0;

}

C语言中产生随机数利用到时间种子,什么原理?谢谢啦。

在C语言中取随机数所需要的函数是:

int rand(void);

void srand (unsigned int n);

rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件:

#include stdlib.h

rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大。

srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样。

c语言的随机函数怎样用?、

#include stdlib.h

#include time.h

int main( )

{

int a[100]; /* 存放随机数的数组 */

time_t t1; /* 用于存放时间 */

time(t1); /* 取得当前系统时间 */

srand(t1); /* 设置随机数种子 */

for (i = 0; i 100; i ++) /* 循环生成10个随机数,放到数组a中 */

a[i] = 10 + rand( ) % 90;

/* 数值范围在10到99间,需要不同范围的数据请自行更改 */

...

}

c语言中语句srand(time(NULL))什么意思。

c语言中 srand(time(NULL)); 的意思是:使用当前时间进行随机数发生器的初始化。

time_t time(time_t *t); 是C标准库函数,如果t是空指针(NULL),直接返回当前时间。如果t不是空指针,返回当前时间的同时,将返回值赋予t指向的内存空间。time() 是指返回自 Unix 纪元起的当前时间的秒数的函数,主要用来获取当前的系统时间,返回的结果是一个time_t类型。

srand函数是随机数发生器的初始化函数。原型:void srand(unsigned int seed); srand和rand()配合使用产生伪随机数序列。

扩展资料:

srand函数的相关信息:

1、语法:void srand (unsigned seed);

2、参数说明:unsigned seed:随机数产生器的初始值(种子值)。

3、功能说明:srand设置产生一系列伪随机数发生器的起始点,要想把发生器重新初始化,可用1作seed值。任何共它的值都把发生器匿成一个随机的起始点。rand检索生成的伪随机数。在任何调用srand之前调用rand与以1作为seed调用srand产生相同的序列。

此函数可以设定rand函数所用的随机数产生演算法的种子值。任何大于一的种子值都会将rand随机数所产生的虚拟随机数序列重新设定一个起始点。

4、包含文件:stdlib. h

5、返回值:无

参考资料来源:百度百科-time()

参考资料来源:百度百科-srand

srand(time(0));//设置时间种子是什么意思(是c语言中的)

计算机产生的随机数并不是真正随机的,所以叫

伪随机数。

当“种子”固定时,它产生的随机数序列是不变的,例如产生10个数,这10个数大小是变化的,但只要用这个种子,每次产生的这10个数序列,是一模一样的。

srand(time(0));

设种子,就会因时间变化,得到不同的种子,那么随机数序列就会变化。

time(0)

是当前时间,(精度可能是毫秒)。只要两次跑程序启动时间差别

超过1毫秒,两个序列就不同了(随机)。如果,时间差别不到1毫秒,两个序列就没变化。

--------

错误的程序:

for

(i=0;i5;i++){

srand(time(0));

//

5次的种子若不变

printf("%d

",rand());

//

依次取

5个序列的

第一个数

}

5个数不变化。

-------------------

正确的程序:

srand(time(0));

//

设1次种子

for

(i=0;i5;i++){

printf("%d

",rand());

//依次取1个序列的第1到第5个随机数

}

5个数变化


网页标题:c语言随机函数时间种子,c语言时间函数随机数
新闻来源:http://pwwzsj.com/article/hsgcde.html