2016-05-03 78 views
1

我正在閱讀生成隨機數的代碼片段。但我不知道它是哪種發行版。誰能告訴我它是哪種發行版?這個代碼代表哪種分佈?

#include<cmath> 
double rand(double min, double max) 
{ 
    return min+(max-min)*rand()/(RAND_MAX+1.0); 
} 
double normal(double x, double miu,double sigma) 
{ 
    return 1.0/sqrt(2*pi)/sigma*exp(-1*(x-miu)*(x-miu)/(2*sigma*sigma)); 
} 
double randn(double miu,double sigma, double min ,double max) 
{ 
    double x,y,dScope; 
    do{ 
     x=rand(min,max); 
     y=normal(x,miu,sigma); 
     dScope=rand(0.0,normal(miu,miu,sigma)); 
    }while(dScope>y); 
    return x; 
} 

我用參數(0,0.01,-0.6,0.6)調用函數randn。我想知道randn代表哪種發行版?它讓我困惑不已,dScope用了什麼? 共有14951個樣本。直方圖如下: enter image description here

+0

您是否嘗試繪製直方圖? – Alex

+0

@亞歷克斯等一下,我會試試。 – maple

+0

您使用了哪些功能參數? – Alex

回答

0

randn使用正態分佈或高斯分佈生成數字。鐘形概率密度函數(您的直方圖與其相似)是此分佈的關鍵標識符。 https://en.wikipedia.org/wiki/Normal_distribution關於此分佈的維基百科文章。

+0

不,這不是正常分佈 –

+0

@SeverinPappadeux好點! – Ignas