C言語で乱数の浮動小数点数を生成する方法は何ですか?

C言語では、rand()関数を使用して標準ライブラリでランダムな整数を生成し、それをランダムな浮動小数点数に変換することができます。

以下はサンプルコードです:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    // 设置种子,以确保每次运行产生不同的随机数
    srand(time(NULL));

    // 产生0到RAND_MAX之间的随机整数
    int randomInt = rand();

    // 将随机整数转换为0到1之间的随机浮点数
    double randomFloat = (double)randomInt / RAND_MAX;

    printf("随机浮点数: %.4f\n", randomFloat);

    return 0;
}

上記のコードでは、srand関数を使用してtime(NULL)をシードとして乱数生成器を初期化し、プログラムを実行する度に異なるランダムなシーケンスを生成できるようにします。そして、rand関数を使用して0からRAND_MAXまでのランダムな整数を生成し、それをRAND_MAXで割って0から1までのランダムな浮動小数点数を得ます。最後に、printf関数を使用してランダムな浮動小数点数の値を出力します。

上記のコードは0から1までのランダムな浮動小数点数を生成するだけであり、他の範囲のランダムな浮動小数点数を生成したい場合は、乗算と加算を使用して適切な変換を行うことができます。

bannerAds