C++11 Random庫隨機數
阿新 • • 發佈:2019-02-10
Random隨機數生成
下面程式碼演示使用c++11的random庫進行隨機數的生成
#include <iostream>
#include <random>
using namespace std;
int main()
{
std::mt19937 rng;
rng.seed(std::random_device()());
std::uniform_int_distribution<std::mt19937::result_type> dist6(1, 6);
std::cout << dist6(rng) << std ::endl;
std::uniform_real_distribution<double> distribution(-1, 1);
std::cout << distribution(rng) << std::endl;
return 0;
}
初始化隨機種子
std::mt19937 rng;
rng.seed(std::random_device()());
建立一個均勻分佈,這個均勻分佈可以等概率(隨機)生成[1, 6]區間的整形數字;
std::uniform_int_distribution<std ::mt19937::result_type> dist6(1, 6);
也可以直接寫成
std::uniform_int_distribution<int> dist6(1, 6);
建立一個均勻分佈,隨機(等概率)生成在(-1, 1)之間的小數;
std::uniform_real_distribution<double> distribution(-1, 1);
更多資訊看參考連結