使用C TR1从二项分布生成数
发布时间:2020-12-16 05:44:59 所属栏目:百科 来源:网络整理
导读:我试图使用以下代码(从互联网获取)从二项分布生成数字.它编译,但一个执行它挂起来. (我在mac上使用gp.) 有人建议使用C TR1库功能从二项分布生成数字的工作代码? #include tr1/random#include iostream#include cstdlibusing namespace std;using namespace
我试图使用以下代码(从互联网获取)从二项分布生成数字.它编译,但一个执行它挂起来. (我在mac上使用gp.)
有人建议使用C TR1库功能从二项分布生成数字的工作代码? #include <tr1/random> #include <iostream> #include <cstdlib> using namespace std; using namespace std::tr1; int main() { std::tr1::mt19937 eng; eng.seed(time(NULL)); std::tr1::binomial_distribution<int,double> roll(5,1.0/6.0); std::cout << roll(eng) << std::endl; return 0; } 解决方法
这里是工作代码:
#include <iostream> #include <random> int main() { std::random_device rd; std::mt19937 gen(rd()); std::binomial_distribution<> d(5,1.0/6.0); std::cout << d(gen) << std::endl; } 您可以查看其结果here,它可以与最近的GCC和Clang版本一起使用.请注意,通常最好使用random_device而不是时间来获取种子. 使用–std = c 11编译. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |