C++で指定された範囲のランダムな整数を生成する方法


  1. C++11以降の標準ライブラリを使用する方法: C++11以降では、ヘッダーファイルに乱数生成器が追加されました。次のコードは、指定された範囲の乱数を生成する方法を示しています。

    #include <iostream>
    #include <random>
    int main() {
       std::random_device rd;  // ランダムデバイスを初期化
       std::mt19937 gen(rd()); // メルセンヌ・ツイスター乱数生成器を初期化
       std::uniform_int_distribution<int> dist(min_value, max_value); // 範囲を指定
       int random_num = dist(gen); // 指定された範囲の乱数を生成
       std::cout << "Random number: " << random_num << std::endl;
       return 0;
    }

    上記のコードでは、min_valuemax_valueは生成する乱数の範囲を表す整数値です。生成された乱数はrandom_num変数に格納され、出力されます。

  2. C++03以前の方法: C++03以前のバージョンでは、ヘッダーファイルにある標準の乱数生成関数を使用して乱数を生成します。次のコードは、C++03以前の方法を示しています。

    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    int main() {
       std::srand(std::time(0)); // 乱数生成器を初期化
       int random_num = std::rand() % (max_value - min_value + 1) + min_value; // 範囲を指定して乱数を生成
       std::cout << "Random number: " << random_num << std::endl;
       return 0;
    }

    上記のコードでは、min_valuemax_valueは生成する乱数の範囲を表す整数値です。乱数生成器はstd::srand(std::time(0))で初期化され、生成された乱数はrandom_num変数に格納されます。