您的位置:首页 > 其它

如何根据概率密度函数生成随机分布

2017-12-19 22:14 302 查看



问题描述

根据 y=cos(theta)概率函数生成随机抽样

解决办法

对概率密度函数积分归一化得到概率函数,然后采用概率函数反函数生成随机分布;

代码实现

void GenerateDirection()
{
TRandom3 rndm;

TH1D *h1 = new TH1D("","",400,0.,3.1415/2);
for(int i=0;i<100000;i++)
{
double y=rndm.Uniform();
double Theta=asin(y);
h1->Fill(Theta);
}
h1->Draw();
}

结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: