下面的代碼展示瞭如何在C++ 11中隨機加倍。每次在這個解決方案中,當我運行這個程序時結果都是一樣的 - 我不知道爲什麼?每次運行程序時如何更改它以獲得不同的解決方案?隨機雙C++ 11
#include <random>
int main(int argc, char **argv)
{
double lower_bound = 0.;
double upper_bound = 1.;
std::uniform_real_distribution<double> unif(lower_bound, upper_bound);
std::default_random_engine re;
double a_random_double = unif(re);
cout << a_random_double << endl;
return 0;
}
//compilation: "g++ -std=c++0x program_name.cpp -o program_name"
給它一個種子值。順便說一句,能夠生成相同的「隨機」值序列對測試非常有用。 –
沒有很好的理由使用'default_random_engine'。它基本上是「我不在乎」的引擎,但是爲什麼要使用它,比如'mt19937'這是高質量的*和*較短的類型。 –
@CoryNelson'default_random_engine'對於對隨機引擎一無所知的人來說是明顯的選擇。這就是它存在的原因。首先看''的新手以及它對引擎和發行版的幾十個選項不太可能做出智能選擇所需的研究水平,他們只是想要一些有效的東西。我們應該很高興他們不使用'rand()'。 –
Casey