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函数,然后我们就可以得到随机数了。