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までのランダムな浮動小数点数を生成するだけであり、他の範囲のランダムな浮動小数点数を生成したい場合は、乗算と加算を使用して適切な変換を行うことができます。