c++ - 在 C/C++ 中生成遵循正态分布的随机数

标签 c++ c random distribution normal-distribution

如何在 C 或 C++ 中轻松生成遵循正态分布的随机数?

我不想使用任何 Boost。

我知道 Knuth 详细讨论了这个问题,但我现在手头没有他的书。

最佳答案

有很多方法可以generate Gaussian-distributed numbers from a regular RNG .

Box-Muller transform是常用的。它正确地生成具有正态分布的值。数学很简单。您生成两个(均匀)随机数,并通过对它们应用公式,您将得到两个正态分布的随机数。返回一个,并保存另一个以供下次请求随机数时使用。

关于c++ - 在 C/C++ 中生成遵循正态分布的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46927386/

相关文章:

c - 释放的内存不会导致页面错误

带种子的 Python 随机序列

c++ - Operator new 在有大量物理内存可用时抛出异常

c++ - 实例化类时出现不完整的类型错误

c++ - 没有STL和动态内存分配的成员函数类

c++ - 在 C++ 代码中返回 Obj-C block

c++ - 使用 std::map [] 运算符交换与分配(const 问题)

c - 我怎样才能摆脱这个c警告?

php - 如何生成随机的、唯一的字母数字字符串?

string - 在 Golang 中生成固定长度的随机十六进制字符串的有效方法?