Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 需要帮助更好地理解RNG吗_C++_Random - Fatal编程技术网

C++ 需要帮助更好地理解RNG吗

C++ 需要帮助更好地理解RNG吗,c++,random,C++,Random,在这篇文章()的最后一个例子中,作者声称这是一种更好的生成随机数的方法。然而,我读了这一行,仍然不知道该怎么做 random_integer = lowest+int(range*rand()/(RAND_MAX + 1.0)); 我测试了这段代码,但每次都会产生“1”的值 我希望有人能提供澄清。假设您想要生成范围[a,b)中的随机整数。这可以通过生成范围[0,b-a)中的随机整数并添加a来实现: random_integer = a + rand(0, b - a) 我们可以使用普通的RA

在这篇文章()的最后一个例子中,作者声称这是一种更好的生成随机数的方法。然而,我读了这一行,仍然不知道该怎么做

random_integer = lowest+int(range*rand()/(RAND_MAX + 1.0));
我测试了这段代码,但每次都会产生“1”的值


我希望有人能提供澄清。

假设您想要生成范围
[a,b)
中的随机整数。这可以通过生成范围
[0,b-a)
中的随机整数并添加
a
来实现:

random_integer = a + rand(0, b - a)

我们可以使用普通的
RAND()
生成
[0,RAND\u MAX]
范围内的随机整数。现在,我们需要调整此间隔以适应
[0,r)
r=b-a
。因为
RAND\u MAX
RAND()
返回的最大值,
RAND()/(MAX\u RAND+1.0)
位于
[0,1)
。因此,
r*rand()/(MAX\u rand+1.0)
位于
[0,r)

我想你应该分享一下你对
最低值
范围
的定义,因为它们是最有可能受到指责的。提示:自C++11以来,还有,现在被认为是在一定间隔内生成随机整数的首选方法。