统一随机数在所有运行中都是相同的
Uniform random numbers are the same in all runs
我找到了一种在范围(aa,bb)中生成统一随机数的方法,如下所示:
#include <random>
double randnum (double aa, double bb) //defining a function to create random numbers
{
static std::default_random_engine generator;
std::uniform_real_distribution<double> distribution (aa,bb);
return distribution(generator);
}
int main (){
for (i=1;i<50;i++){
cout<< randnum(0,1);
}
}
例如,randnum(0,1); 创建一个介于 0 和 1 之间的随机数。问题是,在不同的运行过程中,我在 for 循环中创建的随机序列是完全相同的。如何在不同的运行中创建不同的随机数?
使用非确定性随机数引擎来播种性能更高、确定性的引擎,如 mersenne twister:
#include <iostream>
#include <random>
double randnum (double aa, double bb) { //defining a function to create random numbers
static std::random_device rd; // non-deterministic, but may be slow
static std::mt19937 engine{ rd() };
std::uniform_real_distribution<double> distribution (aa,bb);
return distribution(engine);
}
int main() {
for(int i=1; i<50; i++) {
std::cout<< randnum(0,1);
}
}
https://ideone.com/dgvarY
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 运行同一解决方案的另一个项目的项目
- 整数不会重复超过随机数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何在运行中期切换GTK CSS style_context
- C++随机数生成器通常在 Visual Studio 中运行程序时在 2 次后停止生成数字
- 统一随机数在所有运行中都是相同的
- 500万随机数程序无法运行
- 骰子滚动程序在每次运行时生成相同的随机数序列
- 我的程序在运行时不会打印任何内容,输入几个随机数后它会工作(有很多错误)
- 使用 TR1 /dev/random 生成C++中的随机数(可弹性运行 <1 秒)
- 范围内的随机数(每次运行后范围变化)
- 可以在运行时选择不同的Boost伪随机数生成器
- 程序在每次运行时生成相同的随机数
- 试图生成整数的随机数组,每次运行得到相同的列表.c++