c/c++中产生随机数使用rand()函数,但是这样每次启动程序时产生的随机数序列都是相同的,所以,这样产生的并不是真正的随机数列。
这里我们可以使用srand函数对随机数产生器进行初始化,而使用srand初始化的时候,需要给其提供一个种子,不同的种子就可以对应不同的随机数序列,但是如果种子相同,rand()产生的随机数序列还是相同的,所以,srand(1)进行初始化,显然不符合我们产生随机数的要求,通常的做法就是利用time函数来获得当前系统时间距离00:00:00GMT,January,1,1970这个时刻的秒数。然后强转成unsigned类型来作为种子,这样,能保证每次的种子都不相同。所以,产生随机数的函数如下:
~~~
srand((unsigned)time(NULL));
int a = rand();
~~~
这样就能够产生符合我们需要的随机数序列了。
ps:rand函数在stdlib包中;time函数在time包中;srand函数也在stdlib包中;莫忘导入包。