C++随机数生成器mt19937生成随机数的用法
2017-05-23 19:30
1261 查看
下面的代码来自官方示例:
// mersenne_twister_engine constructor
#include <iostream>
#include <chrono>
#include <random>
#include <string>
using namespace std;
int main()
{
// obtain a seed from the system clock:
unsigned seed1 = std::chrono::system_clock::now().time_since_epoch().count();
// obtain a seed from the user:
std::string str;
std::cout << "Please, enter a seed: ";
std::getline(std::cin, str);
std::seed_seq seed2(str.begin(), str.end());
std::mt19937 g1(seed1); // mt19937 is a standard mersenne_twister_engine
std::cout << "A time seed produced: " << g1() << std::endl;
std::cout << typeid(g1()).name() << endl;
std::mt19937 g2(seed2);
std::cout << "Your seed produced: " << g2() << std::endl;
return 0;
}
// mersenne_twister_engine constructor
#include <iostream>
#include <chrono>
#include <random>
#include <string>
using namespace std;
int main()
{
// obtain a seed from the system clock:
unsigned seed1 = std::chrono::system_clock::now().time_since_epoch().count();
// obtain a seed from the user:
std::string str;
std::cout << "Please, enter a seed: ";
std::getline(std::cin, str);
std::seed_seq seed2(str.begin(), str.end());
std::mt19937 g1(seed1); // mt19937 is a standard mersenne_twister_engine
std::cout << "A time seed produced: " << g1() << std::endl;
std::cout << typeid(g1()).name() << endl;
std::mt19937 g2(seed2);
std::cout << "Your seed produced: " << g2() << std::endl;
return 0;
}
相关文章推荐
- C/C++中产生随机数(rand,srand用法)
- 一随机数生成器以概率 p 生成0,以概率(1-p)生成1,怎样生成等概率的 0 和 1 ?
- C/C++中产生随机数(rand,srand用法)
- C++生成不重复的随机数
- C && C++中产生随机数(rand,srand用法)
- C++中rand随机数的用法
- java中Random与Math.random用法 生成int随机数
- C\C++ 生成各位数不相等的随机数
- C++生成随机数:高斯/正态分布(gaussian/normal distribution)
- 随机数产生转换-根据(1,5)随机数生成器,生成(1,7)之内的随机数
- C++ 随机数生成
- C++ 随机数生成
- C++编写生成不重复的随机数代码
- 依据 seed 生成uint 和 Number 的两种随机数生成器
- 生成不重复的随机数(C#,C++)
- C++随机数生成方法(转载,赶紧搜藏)
- 高质量的c++随机数生成方法
- C/C++中产生随机数(rand,srand用法)
- C++随机数生成方法
- C++ 程序文档生成器(doxygen)用法介绍