c++ - 我怎样才能从 boost::random 得到 lognormal_distribution 来像 boost::math::lognormal_distribution

标签 c++ boost random

我想要一个 boost::variate_generator,它根据 http://en.wikipedia.org/wiki/Log-normal_distribution 给我分配给对数正态分布的数字.

boost::math 中有一个分布实现了维基百科条目中的公式,但它不适用于 variate_generator。 来自 boost::random 的那个与 variate_generator 一起工作,与上面提到的有些不同。

http://www.boost.org/doc/libs/1_46_1/doc/html/boost/lognormal_distribution.html . Mu 需要 >0 并且计算 mu 和 sigma 而不是按给定的方式使用。

有人知道如何让它与以前的公式一起使用吗?

编辑

@霍华德欣南特:

有一个在构造函数中调用的 init() 函数。所以公式是一样的,但是 sigma 和 mean 是这样计算的(为什么我不知道):

   _nmean = log(_mean*_mean/sqrt(_sigma*_sigma + _mean*_mean));
  _nsigma = sqrt(log(_sigma*_sigma/_mean/_mean+result_type(1)));

最佳答案

我可能弄错了,但从检查 boost 代码来看,在我看来 boost lognormal_distribution 与维基百科的描述一致。如果 boost 文档从 mu 和 sigma 中删除 N 下标,文档将是一致的。

关于c++ - 我怎样才能从 boost::random 得到 lognormal_distribution 来像 boost::math::lognormal_distribution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5283977/

相关文章:

c++ - 可以在 C++ 中创建单例结构吗?如何?

random - iMacro 生成随机文本或随机数

c++ - 如何打乱数组以便所有元素改变它们的位置

c++ - boost 特征以检查对象是否为 STL 容器

sql - 使用随机值作为连接条件

c++ - 无法链接 GLFW C++;添加了 .dll、.h、.lib,但仍然获取 LNK2019

c++ - 将成员函数指针作为模板参数传递

c++ - 迭代修改boost::multiindex的数据

c++ - 尝试解码不在 base64 字符集中的值

c++ - 如何使用 boost 预处理器运行一系列功能?