c++自带rand()产生随机数
srand()
设置随机数种子,rand()
产生0-RANMAX
之间的随机整数,通过自己设计变换可以转换成其他分布的随机数
#include
#include
#include
using namespace std;
int main()
{
srand(time(0));
for(int i=0; i<10; i++)
{
cout<<rand()<<endl; //产生0-RANMAX之间的整数
}
return 0;
}
c++11的random库产生随机数 #include
,示例如下
#include
#include //C++11产生随机数
#include
using namespace std;
int main(int argc, char** argv)
{
default_random_engine e;
e.seed(time(0));
//均匀分布
std::uniform_int_distribution<int> Uniform_i(0,10); // 左闭右闭区间
uniform_real_distribution<double> Uniform_d(0,1);
//正态分布
std::normal_distribution<double> Normal_d(0,1); // 均值为0,标准差为1
//二项分布
std::bernoulli_distribution Ber_i(0.8); // 生成1的概率为0.8
cout<<"均匀分布整数-----------"<<endl;
for(int i=0; i<10; i++)
{
cout<<Uniform_i(e)<<endl;
}
cout<<"均匀分布实数-----------"<<endl;
for(int i=0; i<10; i++)
{
cout<<Uniform_d(e)<<endl;
}
cout<<"正太分布-----------"<<endl;
for(int i=0; i<10; i++)
{
cout<<Normal_d(e)<<endl;
}
cout<<"二项分布-----------"<<endl;
for(int i=0; i<10; i++)
{
cout<<Ber_i(e)<<endl;
}
return 0;
}