特定のジレンマにとって、rand の出力を定数で除算することは、ランダムな浮動小数点を生成するための堅牢なアプローチではありません。学習目的では近似結果が得られる可能性がありますが、信頼できる乱数を必要とする本格的なアプリケーションには適していません。
数学的演算を使用したランダムな浮動小数点の生成
高精度を生成するにはC のランダム浮動小数点数は、C 標準ライブラリによって提供される関数を利用します。たとえば、0.0 から 1.0 までのランダムな浮動小数点を生成するには、次のコードを使用できます:
float r = static_cast<float> (rand()) / static_cast<float> (RAND_MAX);
任意の間隔内でランダムな浮動小数点を生成する必要がある場合は、それに応じて式を調整します:
0.0 からX:
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() を使用する前に、srand() を呼び出して乱数ジェネレーターを初期化する必要があります。通常、これは次の方法で実現されます:
srand (static_cast<unsigned> (time(0)));
適切なヘッダーを #include することを忘れないでください:
これらのガイドラインに従うことで、シミュレーションからデータ分析まで、さまざまなアプリケーション向けに C でランダムな float を効果的に生成できます。
以上がC でランダムな浮動小数点数を効果的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。