关注C++细节——产生随机数
2012-03-02 20:22
288 查看
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包中;莫忘导入包。
这里我们可以使用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包中;莫忘导入包。
相关文章推荐
- C++产生随机数
- C语言/C++中如何产生随机数 详细出处参考:http://www.jb51.net/article/42065.htm
- c++ 产生随机数
- C/C++产生随机数
- C/C++怎样产生任意指定范围的随机数?
- C++ 控制台实现产生抽奖随机数
- c/c++产生随机数
- C++中产生随机数的函数
- C++产生随机数四则运算
- VS2010中的C++产生各种“随机数”的方法(第1讲)
- C++学习 (三) C++中随机数的产生
- 如何在C++中产生随机数
- C++产生随机数(整理)
- C语言/C++产生随机数
- C/C++产生随机数
- c++产生随机数问题
- C++中srand函数与rand函数产生一定范围内的随机数
- C/C++产生随机数
- 关注C++细节——动态生成对象初始化细节
- 使用C++产生32位随机数