使用Blitz++生成随机数的例子
下面是用Blitz++生成随机数的例子
#include <ctime> #include <iostream> #include <random/uniform.h> //均匀分布 #include <random/normal.h> //正态分布 #include <random/exponential.h> //指数分布 #include <random/discrete-uniform.h>//离散均匀分布 #include <random/beta.h> //Beta 分布 #include <random/gamma.h>//Gamma 分布 #include <random/chisquare.h>//χ^2 分布 #include <random/F.h> //F分布 using namespace ranlib; using namespace std; int _tmain(int argc, _TCHAR* argv[]) { // 连续均匀随机分布[0,1) Uniform<double> run; run.seed((unsigned int)time(0)); cout<<run.random()<<endl; // 连续均匀随机分布[0,1] UniformClosed<double> run1; run1.seed((unsigned int)time(0)); cout<<run1.random()<<endl; // 连续均匀随机分布(0,1) UniformOpen<double> run2; run2.seed((unsigned int)time(0)); cout<<run2.random()<<endl; // 连续均匀随机分布(0,1] UniformOpenClosed<double> run3; run3.seed((unsigned int)time(0)); cout<<run3.random()<<endl; // 1到99的离散均匀分布的随机数 DiscreteUniform<long> rdu(100); rdu.seed((unsigned int)time(0)); cout<<rdu.random()<<endl; // 正态分布 Normal<double> rnor(10,2); rnor.seed((unsigned int)time(0)); cout<<rnor.random()<<endl; // Beta分布有问题 // Beta<double> rba; // cout<<rba.random()<<endl; // cout<<numeric_limits<double>::min(); // 指数分布 Exponential<double> rex(0.5); cout<<rex.random(); //.. return 0; }