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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章