我想在 2D 表面上生成随机点,分布在 x0,y0 坐标周围。
我知道我需要生成的东西称为“标准多元正态随机向量”,但我不知道如何在 C++ 中执行此操作,例如使用 Boost::random 库。
我知道有一个生成这个的算法,称为Box–Muller 变换,但我认为这必须已经在 Boost 中正确实现。
有没有使用Boost::random生成多元正态分布的简单方法?
我想在 2D 表面上生成随机点,分布在 x0,y0 坐标周围。
我知道我需要生成的东西称为“标准多元正态随机向量”,但我不知道如何在 C++ 中执行此操作,例如使用 Boost::random 库。
我知道有一个生成这个的算法,称为Box–Muller 变换,但我认为这必须已经在 Boost 中正确实现。
有没有使用Boost::random生成多元正态分布的简单方法?
似乎是:
// deterministic Box-Muller method, uses trigonometric functions
template<class RealType = double>
class normal_distribution
{
但是 Box-Muller 不是 2D 的。要获得 2D 版本,您真正需要做的就是获取生成的两个随机数并将它们添加到x0, y0
坐标中。