使用<random> </random>将随机数生成限制在一个范围内

时间:2013-07-15 21:04:06

标签: c++ c++11 random

我在C ++ 11中生成随机数。当我运行我的代码时

using namespace std;

static std::mt19937_64 rng;

int main() {
rng.seed(11);

    std::cout << rng() << std::endl;
}

它返回随机数。但是,我想将此限制为一系列数字,比如1-1000。我如何使用C ++ 11中引入的新<random>文件/库?

1 个答案:

答案 0 :(得分:17)

使用std::uniform_int_distribution中的<random>

示例:

#include <random>
#include <iostream>

int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<int> dis(1, 1000);

    std::cout << dis(gen) << '\n';
}

<random>标头包含许多您可以使用的其他发行版。您可以查看here