如何重置Boost::variate_generator分布
How to reset Boost::variate_generator distribution?
我试图写一个函数,在一个最小和最大,并返回它们之间的随机双精度。我试图使用Boost::variate_generator来获得两个双精度之间的随机数,但问题是我不能改变它的分布,所以我必须每次调用一个新的种子。如果我每次调用伪随机数生成器时都生成一个新的种子,那么它就违背了伪随机数生成器的目的。
有办法得到下面这样的东西吗? Boost不是必需的,它似乎只是给出了很好的结果。
double getRandom(double min, double max);
{
return randomNumberBetweenMinAndMax;
}
有很多方法可以做到这一点。您可以有一个带有默认参数的参数,该参数默认为某个全局可用对象。您可以使用一个局部作用域的静态变量来存储生成器。您可以使用存储生成器的文件作用域静态变量(如果它位于类中,则类似于类静态变量)。你可以有一个函数获取的单例生成器。
我偏向于使用全局可用对象作为默认参数。只要生成器是线程安全的,并且在创建任何线程之前初始化它,那么它通常是线程安全的。
相关文章:
- 改变或缩放两个正态分布以具有特定的相关系数
- 如何创建没有特定定义的随机分布?uniform_int_distribution是从其他类继承的吗?
- C++随机数分布传递给函数
- 从转换后的容器元素创建离散分布
- 从 C++ 函数与 Python 函数返回的不一致值用于偏斜正态分布
- 在编译时选择随机数分布
- C++:创建1000次唯一的随机分布,在任何分布中都没有重复的数字
- c++在循环中定义一组概率分布
- 分布MPI散点错误的数字
- 无法按 lambda 中的值捕获随机分布和生成器?
- 离散分布不对称
- 如何在C++中将函数值更改为表中的值(伽马分布)?
- 在运行时为随机分布类成员设置最小和最大边界?
- 逆生存函数与正态分布的PPF(ICDF)?
- 多态性与C++11分布
- 从提升二项分布中抽取随机数
- 在 c++ 中创建具有指数分布的随机数(可视化标准)
- 将值均匀分布到数组中
- C++11 与不同类型的随机分布共享相同的函数
- 我可以在不指定数字分布的情况下使用随机生成器吗?