【发布时间】:2021-04-26 15:01:43
【问题描述】:
我正在尝试根据不同的分布生成不同的随机数,以对它们进行一些实验。我选择了 c++ 中的 boost 库,因为我看到里面有大量的函数。例如,在对数正态分布中,我关注了这个页面https://www.boost.org/doc/libs/1_43_0/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html 等等。但我无法理解如何实际生成随机数。我试过了
int main(){boost::math::lognormal_distribution<> myLognormal{0,8};cout << myLognormal() << endl; return 0;}
但它除了错误什么都不做。
【问题讨论】:
-
你需要一个随机引擎。
-
std::lognormal_distribution 有示例用法。
-
@Jarod42 随机引擎的意思。我如何在代码中使用它。你能详细说明一下吗?
-
你真的不需要为此提升。标准 C++11 有很多发行版和示例,比如 Jarod42 链接的那个。如果你仍然想使用 boost 中的一些东西,他们的发行版库的最新文档在这里:boost.org/doc/libs/1_76_0/libs/math/doc/html/dist.html。在“工作示例”下查看一些示例程序。
-
你可能想看看boost_random。您来自
boost::math的分布似乎不用于生成数字,而是使用分布属性。