1. 程式人生 > >NS3生成隨機數

NS3生成隨機數

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函式,然後我們就可以得到隨機數了。