1. ホーム
  2. C++

C++11 ランダムライブラリ乱数

2022-02-14 04:31:30
<パス

ランダム乱数生成

次のコードは、c++11 の random ライブラリを使用した乱数生成のデモです。

#include 

#include 

using namespace std;

int main()
{
    std::mt19937 rng;
    rng.seed(std::random_device()());
    std::uniform_int_distribution<std::mt19937::result_type> dist6(1, 6);
    std::cout << dist6(rng) << std::endl;

    std::uniform_real_distribution<double> distribution(-1, 1);
    std::cout << distribution(rng) << std::endl;
    return 0;
}

ランダムシードの初期化

std::mt19937 rng;
rng.seed(std::random_device()());

区間[1, 6]にある定形数字を等確率で(ランダムに)生成する一様分布を作成しなさい。

std::uniform_int_distribution::mt19937::result_type> dist6(1, 6);

また、直接次のように書くこともできます。

std::uniform_int_distribution
 dist6(1, 6);

(-1, 1)の間の小数をランダムに(等確率で)生成する一様分布を作成します。

std::uniform_real_distribution
 distribution(-1, 1);

詳しくは参考リンク先をご覧ください

参考リンク

cplusplusランダム