C语言/C++中如何产生随机数

2020-01-06 20:23:53刘景俊

上面的例子就是因为没有设置随机数种子,每次随机数种子都自动设成相同值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:

复制代码
#include <iostream>
#include <ctime>
using namespace std;

 

void main()
{
 int a;
 a=time(0);//time(0)返回的是系统的时间(从1970.1.1午夜算起),单位:秒
 cout<<a<<endl;
}


例子3.2:
复制代码
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
 srand(time(0)); 
 for(int i=0;i<10;i++)
 {
  //产生10以内的整数 
  cout<<rand()%10<<endl;
 }
}
这样做的话,每次运行的结果就都不一样了。
注:相关教程知识阅读请移步到C++教程频道。