【C言語】0から2までの小数を含む乱数を生成する方法を解説

この記事では、C言語を使って0から2までの小数を含む乱数を生成する方法を解説します。

目次から探す

乱数の概要

乱数とは、ランダムな値を生成するための数学的なアルゴリズムです。

C言語では、標準ライブラリのstdlib.hに含まれるrand()関数を使用して乱数を生成することができます。

乱数の範囲指定

rand()関数は、0からRAND_MAXまでの範囲の整数を生成します。

RAND_MAXは、標準ライブラリのstdlib.hに定義されている定数で、生成される乱数の最大値を表します。

しかし、rand()関数は整数の乱数しか生成できないため、0から2までの小数を含む乱数を生成するためには工夫が必要です。

0から2までの小数を含む乱数の生成方法

  1. まず、0からRAND_MAXまでの範囲の整数を生成します。
  2. 生成された整数を、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;
}

srand()関数は、乱数の種を設定するための関数です。

time(NULL)を引数に渡すことで、現在の時刻を乱数の種として使用します。

rand()関数は、乱数を生成するための関数です。

srand()関数で乱数の種を設定した後に使用する必要があります。

printf()関数は、結果を表示するための関数です。

%fは、小数を表示するためのフォーマット指定子です。

実行結果の例

生成された乱数: 1.234567

このようにして、0から2までの小数を含む乱数を生成することができます。

乱数の範囲や精度を調整する場合は、適宜計算式を変更してください。

目次から探す