NS3生成隨機數
阿新 • • 發佈:2019-01-07
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函式,然後我們就可以得到隨機數了。