如何生成1到10^6之间的随机数

c++ How to generate random number between 1 and 10^6?

本文关键字:之间 随机数 何生成      更新时间:2023-10-16

我意识到rand()可以生成的最大数量是32767。我是否可以在没有外部库的情况下生成值在1到10^6(100万)之间的随机数?

不确定你所说的"外部库"是什么意思,但使用c++ 11 random库很容易。

std::default_random_engine engine{std::chrono::steady_clock::now().time_since_epoch().count()};
std::uniform_int_distribution<int> range{1, 1'000'000};
int randomly_generated_number = range(engine);
int another_randomly_generated_number = range(engine);

对于一般用途的随机数,我可能建议使用std::mt19937(或64位机器上的std::mt19937_64)而不是std::default_random_engine,但默认引擎更适合学习目的。