最常规
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
srand(unsigned(time(0)));
int count = rand() % 3 + 1; //范围1~3
//rand()//最大范围只有32767
return 0;
}
mt19937 (茅台19937)
#include <random>
using namespace std;
random_device rd; //获取随机数种子
mt19937 gen(rd()); //高质量随机数,产生速度快,周期大
//std::default_random_engine rng {rd()}; // Create random number generator//也可以用这个
uniform_int_distribution<> dis(0, 20);//定义了一个用来生成 int类型随机整数的分布对象。范围从 0-20 可能返回21个可能的值 所以每个值出现改了都是1/21
int main()
{
for (int i = 0; i < 10; i++)
{
cout << dis(gen)<<endl;
}
return 0;
}
uniform_int_distribution<> dis(0, 20);
<>中定义类型 默认为int
std::uniform_int_distribution<> d {500};//设置下届值为500
std::uniform_int_distribution<> a {-2,2};//设置上界为2下届值为-2
d.min()//获取下界 500
d.max()//获取上界 2147483647
setw(n)(设置输出宽度)
cout << setw(3) << 1 <<endl;