C++ std::default_random_engine的使用

        使用std::default_random_engine可生成不同分布的随机数,下面使用实例来说明其使用。

随机生成0-1间的实数

//利用当前时间生成的种子,可保证每次生成的值都不一样
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::default_random_engine generator(seed);
std::uniform_real_distribution distribute(0.0, 1.0);//不包含1.0
double v = distribute(generator);//得到0-1间的数值

随机生成min-max间的正整数

//利用当前时间生成的种子,可保证每次生成的值都不一样
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::default_random_engine generator(seed);
int min = 0,max = 100;
std::uniform_int_distribution distribute(min, max);//包含max
int v = distribute(generator);

随机生成正态分布值

正态分布的均值为10,标准差为10:

unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::default_random_engine generator (seed);
std::normal_distribution distribution(10,10);
double v = distribution(generator)

此外还可生成伯努利分布,泊松分布等分布的随机值

你可能感兴趣的:(std,c++,开发语言)