由于在C++中,rand()函数只能生成32位的随机数,当需要64位的随机数时,则需要用到mt19937_64,用法如下:
#include <iostream>
#include <random>
int main(int argc, char **argv) {
std::mt19937_64 rng(2); // 种子,可以选择时间作为seed
std::uniform_int_distribution<uint64_t> distribution(1, 100); // 设置范围
std::cout << distribution(rng) << " ----- " << distribution(rng) << std::endl;
std::cout << distribution(rng) << " ----- " << distribution(rng) << std::endl;
std::cout << distribution(rng) << " ----- " << distribution(rng) << std::endl;
return 0;
}
输出:
91 ----- 86
79 ----- 93
26 ----- 14