#include <iostream>
#include <string>
#include <ctime>
using namespace std;
#include <random>
int main()
{
//C库的随机数
srand((unsigned)time(0)); //使用时间作为种子,初始化随机数
for (int i = 0; i < 10; i++){
cout << rand()/(double)RAND_MAX << ends; //[0,1],打印随机数,需要double强制类型转换
cout << rand() % 10 + 1 << ends; //[1,10]
int x = 13;
int y = 25;
cout << rand() % (y - x + 1) + x << endl; //[x,y]
}
//C++的随机数库
//随机数发生器:分布对象和引擎对象的组合
uniform_int_distribution<unsigned> u(5, 9); //均匀分布
default_random_engine e(time(0)); //默认引擎,以time(0)为种子
for (int i = 0; i < 10; i++){
cout << u(e) << ends;
}
cout << endl << e.min() << ends << e.max() << endl;
//其他随机数分布对象
uniform_real_distribution<double> ur(0,9);//生成随机实数
normal_distribution<> ud(0,9); //正态分布生成浮点值,可使用#include <cmath> lround(ud(e))舍入到最接近的整数
bernoulli_distribution ub; //默认是返回true的概率是0.5
return 0;
}
运行结果: