使用卡方分布c+生成随机数+; 我需要用(Boost)Tr1 C++中的卡方分布生成代表用户活动的随机数。有关于如何开始的示例或帮助吗

使用卡方分布c+生成随机数+; 我需要用(Boost)Tr1 C++中的卡方分布生成代表用户活动的随机数。有关于如何开始的示例或帮助吗,c++,boost,random,C++,Boost,Random,我尝试了以下代码: int main (){ std::tr1::mt19937 eng; // a core engine class //mt19937 is a very fast random number generator algorithm eng.seed(time(0)); //each engine has a seed method //file to store seed

我尝试了以下代码:

int main (){
    std::tr1::mt19937 eng; // a core engine class 
                           //mt19937 is a very fast random number generator algorithm 
    eng.seed(time(0));   //each engine has a seed method 

    //file to store seed 
    std::tr1::chi_squared_distribution<double> chdist(5.0); 
    cout<<endl<<"CHIDIST"<<endl<<"================"<<endl; 

    for (int i = 0; i<50; ++i) 
    { 
         Act.push_back(chdist(eng)*0.1); 
         int rounded = ((int)(chdist(eng) * 100 + .5) / 100.0);         
         Act.push_back(rounded*0.1); cout<<Act[i]<< endl; 
    }

     return 0;   
}
int main(){
std::tr1::mt19937 eng;//一个核心引擎类
//mt19937是一种非常快速的随机数生成器算法
eng.seed(时间(0));//每个引擎都有一个seed方法
//用于存储种子的文件
std::tr1::卡方分布chdist(5.0);
来自维基百科的cout:

如果Z1,…,Zk是独立的标准正态随机变量,那么 它们的平方和根据卡方分布 分布


因此,您可能需要生成k个标准正态变量并计算它们的平方和。

这里的另一篇相关文章我尝试了以下代码:int main(){std::tr1::mt19937 eng;//核心引擎类//mt19937是一种非常快速的随机数生成器算法eng.seed(时间(0));//每个引擎都有一个seed方法//文件来存储seed std::tr1::chi_squared_distribution chdist(5.0)Cutuy应该把你的代码作为问题编辑,而不是注释。使用代码图标进行格式化。我需要在C++中实现卡方分布来生成随机用户活动。有很多方法可以生成正态分布的变量(请检查这个线程:)。然后,您可以通过计算平方和轻松生成卡方分布。