C语言/C++中怎样产生随机数(二)

2013-10-17 09:08:23 · 作者: · 浏览: 439

 

  上面的例子就是因为没有设置随机数种子,每次随机数种子都自动设成相同值1 ,进而导致rand()所产生的随机数值都一样。

  srand()函数定义 : void srand (unsigned int seed);

  通常可以利用geypid()或time(0)的返回值来当做seed

  如果你用time(0)的话,要加入头文件#include<ctime>

  time(0)或者time(NULL)返回的是系统的时间(从1970.1.1午夜算起),单位:秒

  例子3.1:

  [cpp]

  #include <iostream>

  #include <ctime>

  using namespace std;

  void main()

  {

  int a;

  a=time(0);//time(0)返回的是系统的时间(从1970.1.1午夜算起),单位:秒

  cout《a《endl;

  }

  例子3.2:

  [cpp]

  #include<iostream>

  #include<ctime>

  using namespace std;

  int main()

  {

  srand(time(0));

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

  {

  //产生10以内的整数

  cout《rand()%10《endl;

  }

  }

  这样做的话,每次运行的结果就都不一样了。