使用卡方分布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++中实现卡方分布来生成随机用户活动。有很多方法可以生成正态分布的变量(请检查这个线程:)。然后,您可以通过计算平方和轻松生成卡方分布。