【发布时间】:2015-01-21 05:49:03
【问题描述】:
我正在使用随机 c++11 库来生成随机数。现在我想生成三个正态分布的混合,平均值为 50,100 和 150,std dev 10。我该怎么做? 谢谢你。 总帐
【问题讨论】:
-
这是一个有趣的问题。你问的是通用算法吗?或者您是否要求正确的语法来实现已知算法。这是作业问题吗?
标签: c++11 random normal-distribution
我正在使用随机 c++11 库来生成随机数。现在我想生成三个正态分布的混合,平均值为 50,100 和 150,std dev 10。我该怎么做? 谢谢你。 总帐
【问题讨论】:
标签: c++11 random normal-distribution
std::lib 中没有直接支持多模式分布的 API。您必须根据标准提供的单峰正态分布构建三峰分布::
template <class RealType = double>
class normal_distribution;
【讨论】:
我通过在 3 个正态分布之间随机选择来做到这一点,
喜欢:
a=rand(1,3)
switch(a)
case 1:
res=rand_from_first_normal_distribution();
case 2:
res=rand_from_second_normal_distribution();
case 3:
res=rand_from_third_normal_distribution();
无论如何,这门课程的截止日期已经延长到 2 月 16 日,所以不要担心 :)
【讨论】: