当前位置: 首页 > 知识库问答 >
问题:

使用C++的高斯分布无均值和标准差

鲁阳焱
2023-03-14

我统一生成了随机数。现在我想使用高斯(正态分布)生成随机数。我不知道均值和标准差。我看过这篇文章:http://www.johndcook.com/cpp_tr1_random.html#normal,但它需要一个均值和标准差!我也知道Box-Muller变换是常用的。这正确地产生了正态分布的值。但我又不知道均值和标准偏差。请不要刺激。有人能帮忙吗?

共有1个答案

汤嘉平
2023-03-14

当您生成均匀分布(在一个段中)的随机数时,您需要两个参数:段的下边界和段的上边界。通常,它们分别为0和1,因此您可以从[0..1]范围中获取数字。

现在,要生成正态分布数,还需要两个参数:均值和标准差。然而,它们有不同的含义。平均数是生成的数字的集合:如果指定15,您可能会看到11、17、13、21、9、12、14、11等,但不是(通常)290或-562。标准差(sigma)基本上决定了生成的数字偏离平均值的距离。严格地说,可能会生成任意大小的数字:即使指定均值0和sigma1e-6,也可能得到1000--但这是不太可能的。

根据经验,几乎所有生成的数字都在[mean-3*sigma..mean+3*sigma]范围内,我敢打赌,在你的生活中,你不会看到任何超出[mean-5*sigma..mean+5*sigma]范围的东西。

希望能有所帮助!

 类似资料:
  • 问题内容: 这是Java和基本数学问题的结合。Random.nextGaussian()的文档指出,它是从均值0和标准偏差为1的正态分布中抽样的。如果我想从均值和方差不同的正态分布中抽样,该怎么办? 问题答案: 简短的答案是 例如,此答案在此处给出:http : //www.javamex.com/tutorials/random_numbers/gaussian_distribution_2.s

  • 问题内容: 有没有一种方法可以使用Boost计算包含样本的向量的均值和标准差? 还是我必须创建一个累加器并将向量馈入其中? 问题答案: 使用累加器 是 在Boost中计算均值和标准差的方法。

  • 假定最小=0.00,最大=1400.00,均值=150.50,标准差=25.00,如何根据这些统计数据产生随机值?根据我的理解,这个图是一个斜图,但是我不太确定它是否是一个对数正态分布。然而,从我目前的理解来看,下面的代码返回的值来自正态分布。

  • 有一个函数,但它就像抽样一样,不是我想要的。

  • 问题内容: 我有一个元组列表[(val1,freq1),(val2,freq2)....(valn,freqn)]。我需要获得上述数据的集中趋势的度量(均值,中位数)和偏差的度量(方差,均值)。我还想绘制一个值的箱形图。 我看到numpy数组有直接的方法可以从值列表中获取均值/中位数和标准差(或方差)。 numpy(或任何其他知名的库)是否有直接方法可对这种频率分布表进行操作? 另外,以编程方式将

  • 标准正态分布的概率密度函数定义为e < sup >-x < sup > 2 /2 /√(2π)。这可以用简单的方式转换成C代码。单精度实现的示例可能是: 虽然此代码没有过早的下限溢位,但存在精度问题,因为计算2/2时产生的误差会被后续的幂运算放大。人们可以通过针对更高精度引用的测试轻松证明这一点。确切的误差将根据所使用的或实现的准确性而有所不同;对于忠实四舍五入的幂函数,人们通常会观察到IEEE-