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