C でのランダムな浮動小数点数の生成
C では、ランダムな浮動小数点数を生成するタスクは、組み込みの rand() を利用することで実現できます。疑似乱数整数を生成するために一般的に使用される関数。ただし、ランダムな浮動小数点を生成するには rand() を値で除算するだけで十分であるという仮定は間違っています。
ランダムな浮動小数点を効果的に取得するには、次のアプローチを使用できます:
0 to 1 範囲:
0.0 と 1.0 (両端を含む) の間のランダムな浮動小数点を生成するには、次の式を使用します。適切な値を提供します:
float r = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
0 to Arbitrary Float:
0.0 から任意の float 値 X までのランダムな float を生成するには、次の式を使用できます。雇用:
float r2 = static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / X));
任意範囲:
任意の値 LO と HI で定義された範囲内でランダムな浮動小数点数を生成するには、次の式で望ましい結果が得られます。
float r3 = LO + static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / (HI - LO)));
rand() 関数は、さまざまなアプリケーションに不可欠な真の乱数を常に提供するとは限りません。
rand() を使用する前に、次のことが必須です。 srand() を使用してシード値を使用して乱数ジェネレーターを初期化します。この初期化により、プログラムの実行中にさまざまな乱数シーケンスが確実に生成されます。一般的な方法では、次のように time(0) を利用してシステム クロックに基づいてシードを生成します。
srand(static_cast<unsigned int>(time(0)));
rand と srand を使用するには、
以上がC でランダムな浮動小数点を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。