gpt4 book ai didi

c++ - 更改随机数生成器的参数

转载 作者:太空狗 更新时间:2023-10-29 20:17:46 26 4
gpt4 key购买 nike

我正在使用 boost::random 生成随机速度值,我想根据用户输入更改均值和方差。

我正在使用以下内容:

typedef boost::mt19937 RNG;
static RNG rng();

typedef boost::normal_distribution<double> DIST;
DIST dist_east(vel_e, sigma);
DIST dist_north(vel_n, sigma);

boost::variate_generator<RNG, DIST> east(rng, dist_east);
boost::variate_generator<RNG, DIST> north(rng, dist_north);

velocity.east = east();
velocity.north = north();

我的问题是,每次调用两个变量生成器时,我只得到一个返回值。当我更改 vel_e、vel_n 或 sigma 时,这些值会发生变化,但除此之外,我会返回相同的值。

我尝试将 dist_east、dist_north、east 和 north 对象设为静态,但在构建后无法更改参数。

有没有办法实现我想要的?

最佳答案

在我看来,最快的方法就是使用 sigma 为 1 且均值为 0 的正态分布。这样,您只需乘以新的 sigma 并加上均值即可从任何正态分布中获取值。

y = mean + sigma * x

关于c++ - 更改随机数生成器的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6030466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com