使用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;

}

你可能感兴趣的:(随机数)