c – 更改随机数发生器的参数
发布时间:2020-12-16 09:34:46 所属栏目:百科 来源:网络整理
导读:我使用boost :: random来生成随机速度值,我想改变响应用户输入的均值和方差. 我使用以下内容: typedef boost::mt19937 RNG;static RNG rng();typedef boost::normal_distributiondouble DIST;DIST dist_east(vel_e,sigma);DIST dist_north(vel_n,sigma);boo
我使用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(); 我的问题是每次调用时我只从两个变量生成器返回一个值.当我改变v??el_e,vel_n或sigma时,值会改变,否则,我会得到相同的值. 我尝试将dist_east,dist_north,east和north对象设置为静态,但是在构造之后我无法更改参数. 有没有办法实现我想要的? 解决方法
在我看来,最快的方法是使用sigma 1和平均值0进行正态分布.这样,您可以从任何正态分布中获取值,只需乘以新的sigma并添加均值.
y = mean + sigma * x (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |