使用 Boost::random 的标准多元正态随机向量
我想在 2D 表面上生成随机点,分布在 x0, y0 坐标周围。
我知道我需要生成的称为“标准多元正态随机向量”,但我不知道如何在 C++ 中执行此操作,例如使用 Boost::random 库。
我知道有一种生成此算法的算法,称为 Box–Muller 变换 但我认为这一定已经在 Boost 中正确实现了。
有没有使用 Boost::random 生成多元正态分布的简单方法?
I would like to generate random points on a 2D surface, distributed around a x0, y0 coordinate.
I understand that what I need to generate is called "standard multivariate normal random vector", but I don't know how to do it in C++, for example using the Boost::random library.
I know there is an algorith for generating this, called Box–Muller transform but I would think that this must have already been implemented properly in Boost.
Is there any simple way to generate multivariate normal distribution, using Boost::random?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
似乎是:
但 Box-Muller 不是t 2D。要获得 2D 版本,您真正需要做的就是获取生成的两个随机数并将它们添加到 x0, y0 坐标。
It seems to be:
But Box-Muller isn't 2D. All you really have to do to get the 2D version is to take the two random numbers generated and add them to the
x0, y0
coordinates.