C++ uniform_int_distribution クラスによる離散一様分布の使用方法に関する詳しい解説

C++のuniform_int_distributionは、指定された範囲内で乱数を生成するための一様分布のクラスです。

uniform_int_distribution の使い方は次のとおりです。

  1. ヘッダファイルをインクルードする

まずヘッダファイルを取り込みます。

#include <random>
  1. 乱数エンジンの作成

uniform_int_distribution は乱数生成のため乱数エンジンの取得を必要とします。デフォルトで std::default_random_engine が使用できますが、別の乱数エンジンを使用することもできます。

std::default_random_engine generator;
  1. 一様整数分布オブジェクトを作成する

uniform_int_distributionのテンプレートパラメータは、生成される乱数の型(int、unsigned intなど)を指定します。

std::uniform_int_distribution<int> distribution(min_value, max_value);

min_valueとmax_valueは乱数の生成範囲です

  1. 乱数を生成する

uniform_int_distributionのメンバ関数operator()を使って乱数を生成する。

int random_number = distribution(generator);

ランダムなmin_valueとmax_valueの整数を生成することができます。

以下に完全な例があります:

#include <iostream>
#include <random>
int main() {
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(1, 6);
for (int i = 0; i < 10; ++i) {
int random_number = distribution(generator);
std::cout << random_number << " ";
}
return 0;
}

この結果は、1 から 6 の範囲の 10 個のランダムな整数であり、結果は「4 2 5 1 6 3 6 5 2 4」となる可能性があります。

bannerAds