C++生成随机数过程

由于计算机产生的的随机数种子是有规律的,若果不改变随机种子的话,随机数生成则是有迹可循的

代码实现

  1. 简单实现(不使用随机数引擎)
#include<ctime>//确保随机数种子改变
#include<cstdlib>//使用随机数用到的库
#include<iostream>
using namespace std;
int main()
{  
    srand(time(NULL));//利用1970年1月1日至今的秒数制作随机数种子
    for(int i = 0;i <10;i++)
    {
     cout << rand() << endl;
    }

return 0;
}
  1. 使用随机数引擎(random库)
#include<iostream>
#include<random>
#include<ctime>

using namespace std;

int main()
{
 default_random_engine e;
 normal_distribution<double> u(0,1);//正态分布,均值0,方差1.
 e.seed(time(NULL));
/*//均匀分布
 default_random_engine e;
    uniform_real_distribution<double> u(1.0,2.0);  //左闭右闭区间
    e.seed(time(0));
*/
/*二项分布
default_random_engine e;
    bernoulli_distribution u(0.6);  //生成1的概率是0.6
    e.seed(time(0));
*/   
 for(int i = 0;i < 10; i++)
    {
     cout << u(e) << endl;
    }
return 0;
}

本文章使用limfx的vscode插件快速发布