C++の配列と乱数の基本
C++では、配列と乱数は非常に重要な概念です。以下に、それぞれの基本的な使い方を説明します。
配列の基本
C++の配列は、同じ型の複数の変数を一つの名前で管理するためのデータ構造です。以下に、整数型の配列を作成し、値を設定する基本的なコードを示します。
int array[5]; // 5つの整数を格納できる配列を宣言
for(int i = 0; i < 5; i++){
array[i] = i; // 配列の各要素に値を設定
}
乱数の基本
C++で乱数を生成するには、<random>
ライブラリを使用します。以下に、0から99までの乱数を生成する基本的なコードを示します。
#include <random>
std::random_device rnd; // 非決定的な乱数生成器を作成
std::mt19937 mt(rnd()); // メルセンヌ・ツイスタの32ビット版、引数は初期シード値
std::uniform_int_distribution<> rand100(0, 99); // [0, 99] 範囲の一様乱数
int random_num = rand100(mt); // 乱数を生成
これらの基本的な知識を理解した上で、次のセクションでは配列と乱数を組み合わせた応用例を見ていきましょう。
乱数を使って配列を生成する方法
C++で乱数を使って配列を生成する方法は非常に簡単です。以下に、0から99までの乱数を生成し、それを配列に格納する基本的なコードを示します。
#include <random>
std::random_device rnd; // 非決定的な乱数生成器を作成
std::mt19937 mt(rnd()); // メルセンヌ・ツイスタの32ビット版、引数は初期シード値
std::uniform_int_distribution<> rand100(0, 99); // [0, 99] 範囲の一様乱数
int array[5]; // 5つの整数を格納できる配列を宣言
for(int i = 0; i < 5; i++){
array[i] = rand100(mt); // 配列の各要素に乱数を設定
}
このコードでは、<random>
ライブラリを使用して乱数を生成し、それを配列に格納しています。このように、C++では乱数と配列を組み合わせて様々な処理を行うことが可能です。次のセクションでは、配列の要素をランダムに並び替える方法について見ていきましょう。
配列の要素をランダムに並び替える方法
C++では、配列の要素をランダムに並び替えるために<algorithm>
ライブラリのshuffle
関数を使用します。以下に、配列の要素をランダムに並び替える基本的なコードを示します。
#include <random>
#include <algorithm>
std::random_device rnd; // 非決定的な乱数生成器を作成
std::mt19937 mt(rnd()); // メルセンヌ・ツイスタの32ビット版、引数は初期シード値
int array[5] = {1, 2, 3, 4, 5}; // 配列を宣言し、初期値を設定
std::shuffle(array, array+5, mt); // 配列の要素をランダムに並び替え
このコードでは、<algorithm>
ライブラリのshuffle
関数を使用して配列の要素をランダムに並び替えています。shuffle
関数の第一引数と第二引数には、並び替える範囲を指定します。第三引数には、乱数生成器を指定します。
このように、C++では乱数と配列を組み合わせて様々な処理を行うことが可能です。次のセクションでは、重複のない乱数列を生成する方法について見ていきましょう。
重複のない乱数列を生成する方法
C++では、重複のない乱数列を生成するために<algorithm>
ライブラリのshuffle
関数を活用します。以下に、0から4までの重複のない乱数列を生成する基本的なコードを示します。
#include <random>
#include <algorithm>
std::random_device rnd; // 非決定的な乱数生成器を作成
std::mt19937 mt(rnd()); // メルセンヌ・ツイスタの32ビット版、引数は初期シード値
int array[5] = {0, 1, 2, 3, 4}; // 配列を宣言し、初期値を設定
std::shuffle(array, array+5, mt); // 配列の要素をランダムに並び替え
このコードでは、配列の初期値を0から4までの整数に設定し、その後でshuffle
関数を使用して配列の要素をランダムに並び替えています。結果として、0から4までの重複のない乱数列が生成されます。
このように、C++では乱数と配列を組み合わせて様々な処理を行うことが可能です。次のセクションでは、C++の乱数ライブラリの使い方について見ていきましょう。
C++の乱数ライブラリの使い方
C++では、乱数を生成するために<random>
ライブラリを使用します。このライブラリは様々な乱数生成器と分布を提供しています。以下に、基本的な使い方を説明します。
乱数生成器の作成
まず、乱数生成器を作成します。以下に、メルセンヌ・ツイスタの32ビット版の乱数生成器を作成するコードを示します。
#include <random>
std::random_device rnd; // 非決定的な乱数生成器を作成
std::mt19937 mt(rnd()); // メルセンヌ・ツイスタの32ビット版、引数は初期シード値
乱数の生成
次に、乱数生成器を使って乱数を生成します。以下に、0から99までの一様乱数を生成するコードを示します。
std::uniform_int_distribution<> rand100(0, 99); // [0, 99] 範囲の一様乱数
int random_num = rand100(mt); // 乱数を生成
このように、C++の<random>
ライブラリを使用すると、様々な乱数生成器と分布を組み合わせて、必要な乱数を簡単に生成することができます。これらの知識を活用して、配列と乱数を組み合わせた様々な処理を行うことが可能です。この記事が、C++の配列と乱数の活用に役立つことを願っています。