NS3生成随机数

来源:互联网 发布:贝叶斯算法 spark 编辑:程序博客网 时间:2024/06/05 09:02

ns3可以产生随机数。
先把代码和运行结果展示一下:

#include "ns3/core-module.h"#include "ns3/random-variable-stream.h"#include <iostream>#include "ns3/ptr.h"#include "ns3/double.h"#include "ns3/rng-seed-manager.h"using namespace std;using namespace ns3;int main(int argc, char *argv[]){        uint32_t rng=1;//自定义一个变量          CommandLine cmd;        cmd.AddValue("rng","Number of rng",rng);        cmd.Parse(argc,argv);//必须在前三行之后         RngSeedManager::SetSeed (1); // Changes seed from default of 1 to 3        RngSeedManager::SetRun (rng);        Ptr<UniformRandomVariable> x = CreateObject<UniformRandomVariable> ();        x->SetAttribute ("Min", DoubleValue (0.0));        x->SetAttribute ("Max", DoubleValue (10.0));        double value = x->GetValue ();        cout <<"value:"<<value<< endl;        cout<<"randint:"<<x->GetInteger ()<<endl;        return 0;}

这里写图片描述

代码讲解:
(1)参数讲解:
RngSeedManager::SetSeed (1);
RngSeedManager::SetRun (rng);
分别设置了随机数种子和运行次数。通常产生随机数的方法是:固定随机种子,改变运行次数。


(2)类UniformRandomVariable讲解:
这个类从RandomVariableStream继承,我们可以看一下这个基类的方法。
这里写图片描述


看一下这个类的public函数:
这里写图片描述
子类可以用父类的public函数,然后我们就可以得到随机数了。