根据离散分布生成随机数——通用例子
2016-03-16 00:44
351 查看
//////////////////////////////////////////////////////how to create discrete random number according //to you giving distribution////auther :Hui Li 2016/3/16 00:22 ////////////////////////////////////////////////////int f02(){ //double a[5]={1.5,2.5,3.5,4.5,5.5};double
p[5]={0.1,0.3,0.1,0.4,0.1};double x,content,C;double N=10000;//change log:change the range ,this program should be modifyeddouble a=0,b=500,c=5;//TH1D* h1=new TH1D("h1","h1;x;y",c,a,b);TH1D* h2=new TH1D("h2","h2;x;y",c,a,b); double sum(double p[],int j);TRandom3
r;for(int i=0;i<N;i++){x=r.Uniform();for(int j=0;j<5;j++){ if(sum(p,j)<x&&x<sum(p,j+1)){ x=(x+j)*(b-a)/c;//cout<<"\tj="<<j<Fill(x);}}}for (Int_t i=1;i<=5;i++) { count=h1->GetBinContent(i); C=count/N; h2->SetBinContent(i,C);} // //归一化 normalization// for(int
j=1;j<=5;j++) // { // content =h1 ->GetBinContent(j); // C=content/N; // h2 ->SetBinContent(j,C);// } auto c1=new TCanvas(); c1->Divide(1,2); c1->cd(1); h1->Draw(); c1->cd(2); h2->Draw(); return 0;} double sum(double a[],int j){ double sum=0; for(int i=0;i<j;i++)
sum+=a[i]; return sum;}
p[5]={0.1,0.3,0.1,0.4,0.1};double x,content,C;double N=10000;//change log:change the range ,this program should be modifyeddouble a=0,b=500,c=5;//TH1D* h1=new TH1D("h1","h1;x;y",c,a,b);TH1D* h2=new TH1D("h2","h2;x;y",c,a,b); double sum(double p[],int j);TRandom3
r;for(int i=0;i<N;i++){x=r.Uniform();for(int j=0;j<5;j++){ if(sum(p,j)<x&&x<sum(p,j+1)){ x=(x+j)*(b-a)/c;//cout<<"\tj="<<j<Fill(x);}}}for (Int_t i=1;i<=5;i++) { count=h1->GetBinContent(i); C=count/N; h2->SetBinContent(i,C);} // //归一化 normalization// for(int
j=1;j<=5;j++) // { // content =h1 ->GetBinContent(j); // C=content/N; // h2 ->SetBinContent(j,C);// } auto c1=new TCanvas(); c1->Divide(1,2); c1->cd(1); h1->Draw(); c1->cd(2); h2->Draw(); return 0;} double sum(double a[],int j){ double sum=0; for(int i=0;i<j;i++)
sum+=a[i]; return sum;}
相关文章推荐
- Swift 中使用 SQLite——创建数据表
- 【记】LinkedHashMap的理解
- 关于a标签伪类中的visited不起作用问题
- 关于npm在安装node.js后无法使用的情况
- TCP那些事
- 如何使用硬盘安装debian8.3?
- UVa 232 - Crossword Answers
- 深度学习方法(七):最新SqueezeNet 模型详解,CNN模型参数降低50倍,压缩461倍!
- 深度学习方法(七):最新SqueezeNet 模型详解,CNN模型参数降低50倍,压缩461倍!
- 深度学习方法(七):最新SqueezeNet 模型详解,CNN模型参数降低50倍,压缩461倍!
- CSS学习(十五)-CSS颜色模式、CSS颜色透明度
- rotbotframework实现界面自动测试环境搭建
- 关于合并apk和odex的实践
- 本地音乐播放器(四)——总结篇
- 计算机网络知识点小结
- 【POJ 2387】Til the Cows Come Home(dij)
- 全貌概览
- Java中本地变量声明的使用技巧
- 【数据结构与算法】(六) c 语言实现简单的二叉树静态创建及先序、中序、后序遍历
- 2016.03.15(那年今日:第一个因特网域名“.com”开始应用)