使用Boost :: random的标准多元正态随机向量

时间:2011-07-12 16:32:50

标签: c++ boost random geometry boost-random

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

我理解我需要生成的内容称为“标准多元正态随机向量”,但我不知道如何在C ++中进行,例如使用Boost :: random库。

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

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

1 个答案:

答案 0 :(得分:3)

It seems to be

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

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