我知道 C++ 中的随机数生成有一些限制(可能是不均匀的)。如何生成 1 到 14620 之间的数字?
谢谢。
最佳答案
如果你有一个 c++0x 环境,boost 库的一个近似派生现在是标准的:
#include <random>
#include <iostream>
int main()
{
std::uniform_int_distribution<> d(1, 14620);
std::mt19937 gen;
std::cout << d(gen) << '\n';
}
这将是快速、简单和高质量的。
你没有指定,但如果你想要浮点而不是 sub in:
std::uniform_real_distribution<> d(1, 14620);
如果您需要非均匀分布,您可以非常轻松地构建自己的分段常量或分段线性分布。
关于c++ - 随机数生成器,C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5019393/