2

我想在 2D 表面上生成随机点,分布在 x0,y0 坐标周围。

我知道我需要生成的东西称为“标准多元正态随机向量”,但我不知道如何在 C++ 中执行此操作,例如使用 Boost::random 库。

我知道有一个生成这个的算法,称为Box–Muller 变换,但我认为这必须已经在 Boost 中正确实现。

有没有使用Boost::random生成多元正态分布的简单方法?

4

1 回答 1

3

似乎是

// deterministic Box-Muller method, uses trigonometric functions
template<class RealType = double>
class normal_distribution
{

但是 Box-Muller 不是 2D 的。要获得 2D 版本,您真正需要做的就是获取生成的两个随机数并将它们添加到x0, y0坐标中。

于 2011-07-12T16:39:36.510 回答