この記事では、C言語を使って0から2までの小数を含む乱数を生成する方法を解説します。
目次から探す
乱数の概要
乱数とは、ランダムな値を生成するための数学的なアルゴリズムです。
C言語では、標準ライブラリのstdlib.h
に含まれるrand()関数
を使用して乱数を生成することができます。
乱数の範囲指定
rand()関数
は、0からRAND_MAX
までの範囲の整数を生成します。
RAND_MAX
は、標準ライブラリのstdlib.h
に定義されている定数で、生成される乱数の最大値を表します。
しかし、rand()関数
は整数の乱数しか生成できないため、0から2までの小数を含む乱数を生成するためには工夫が必要です。
0から2までの小数を含む乱数の生成方法
- まず、0から
RAND_MAX
までの範囲の整数を生成します。 - 生成された整数を、0から2までの範囲の小数に変換します。
生成された整数を2で割り、その結果に2を掛けることで、0から2までの範囲の小数を得ることができます。
例えば、生成された整数が100の場合、100を2で割った結果は50です。
そして、50に2を掛けると100になります。
このようにして得られた値が、0から2までの範囲の小数となります。
サンプルコード
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// 乱数の種を設定
srand(time(NULL));
// 0からRAND_MAXまでの範囲の整数を生成
int randomInt = rand();
// 0から2までの範囲の小数に変換
double randomDouble = (double)randomInt / RAND_MAX * 2;
// 結果の表示
printf("生成された乱数: %f\n", randomDouble);
return 0;
}
time(NULL)
を引数に渡すことで、現在の時刻を乱数の種として使用します。
srand()関数
で乱数の種を設定した後に使用する必要があります。
%f
は、小数を表示するためのフォーマット指定子です。
実行結果の例
生成された乱数: 1.234567
このようにして、0から2までの小数を含む乱数を生成することができます。
乱数の範囲や精度を調整する場合は、適宜計算式を変更してください。