random
1.简介
在C语言中,使用srand
和rand
函数生成随机数,但是生成的随机数具有的最大值范围根据实现来决定的,在使用中可以出现下面的情况:
int num = rand() % 10000;
|
因此,使用C++的随机生成库<random>
来生成随机数。
2.均匀随机数生成
1.生成size_t整数
#include <random> #include <iostream>
int main() { std::random_device rnd; std::mt19937 rng(rnd()); std::uniform_int_distribution<int> uni(90,100); int num = uni(rng); std::cout << num << std::endl; return 0; }
|
2.生成float小数
#include <random> #include <iostream>
int main() { std::random_device rnd; std::mt19937 rng(rnd()); std::uniform_real_distribution<float> unf(0.0f,1.0f); float num = unf(rng); std::cout << num << std::endl; return 0; }
|
3.高斯分布随机数生成
#include <iostream> #include <random>
int main() { std::random_device rd; std::mt19937 gen(rd());
double mean = 0.0; double stddev = 1.0; std::normal_distribution<double> dist(mean, stddev);
for (int i = 0; i < 10; ++i) { double random_num = dist(gen); std::cout << random_num << std::endl; }
return 0; }
|