我如何(伪)随机生成数字0和1(不在之间)?

时间:2014-01-25 05:30:17

标签: c++ random

我如何(伪)随机生成0或1?

注意:不在0和1之间。

1 个答案:

答案 0 :(得分:5)

在C ++ 11中,你可以这样做:

#include <iostream>
#include <random>
#include <chrono>

int main()
{
    unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
    std::mt19937_64 generator (seed);
    std::uniform_int_distribution<int> distribution(0, 1);
    for (int i = 0; i < 100; i++)
        std::cout << distribution(generator);
}

或者在评论中做C风格的建议:

#include <iostream>
#include <cstdlib>
#include <ctime>

int main()
{
    srand(time(0));
    for (int i = 0; i < 100; i++)
        std::cout << rand() % 2;
}