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

Python017

c语言中语句srand(time(NULL))什么意思。,第1张

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()函数是C语言中产生随机数的一个函数。

函数原型: void srand(unsigned seed)

功      能: 产生随机数的起始发生数据,和rand函数配合使用

头 文  件: stdlib.h   time.h

 

举例如下:

  #include <stdio.h>

  #include <stdlib.h>

  #include <time.h>

  int main(void)

  {

      int i

      time_t t

      srand((unsigned) time(&t))

      printf("Ten random numbers from 0 to 99\n\n")

      for (i=0 i<10 i++)

      printf("%d\n", rand()%100)

      return 0

  }

运行程序,会发现每次产生的随机数都不一样。这是因为这里采用了时间作为种子,而时间在每时每刻都不相同,所以就产生了"随机"的随机数了。所以,要想产生不同的随机数,在使用rand之前需要先调用srand。

呵呵,这个是我遇到过的问题,并进行了一些研究。其实这是因为srand()函数是一个随机数产生函数,其意思就是指c语言里的随机数都是由它来控制产生的!!!如果在应用srand()函数之前就用随机函数rand(),则相当于使用了srand(1)

而将srand((unsigned)time(null))这条语句放在了for循环里,即是用了srand((unsigned)time(0))故此句语句不变的话,产生的随机数就不变!!!不懂的话可以问我!