我很难理解如何在 boost 中使用二项分布和正态(高斯)分布。我需要从这些函数中获取单个值。我确定我现在可能正在尝试错误地使用这些功能,但这是我目前所拥有的:
#include <boost/math/distributions.hpp>
#include <boost/math/tools/roots.hpp>
#include <boost/random/variate_generator.hpp>
#include <boost/random.hpp>
//valueH is assigned before
int value;
/* Should this assign value to "value" ?*/
value = boost::math::binomial_distribution<> value(1,valueH);
正态分布为
normal norm;
double someValue = boost::math::pdf(norm, (value1*value2+value3)/(value1*sqrt(value2)));
或者我应该在这里使用 boost::math::normal_distribution<> 或者它是如何工作的?我已经阅读了 boost 文档,但仍然不知道如何从分布中分配值。我也读过 C++ TR1: how to use the normal_distribution?那么我是否需要使用一些随机数生成器并生成链接所示的数字,这是否允许我为变量分配单个值?
如果消息有点乱,我很抱歉,但无论如何谢谢!
好的,到目前为止我已经理解了二项式并使其正常工作,现在我需要让正态分布正常工作......引用上面的链接,我的情况不同于我只需要一个值但我想调用正态分布有值的分布。就像“给我 N(0.1) 和 2 左右。
好吧,我认为这变得越来越容易,但似乎不是我想使用 boost 二分函数 Bisection但问题是有时我只有函数 min 和 max,而二分函数至少需要 4 个参数第 4 个参数是 Tol tol ..这是某种容差,但如果我想找到它,我可以将它分配给 0一个绝对值还是我需要用 3 个参数编写自己的二分法?
最佳答案
使用C++ TR1生成随机数 http://www.johndcook.com/cpp_TR1_random.html
boost 二分法示例: http://www.cplusplus.com/forum/general/50136/
另见 Boost TOMS748 示例: http://programmingexamples.net/wiki/CPP/Boost/Math/Tools/TOMS748
关于c++ - 如何使用boost分布函数?二分法呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8232058/