ホームページ > バックエンド開発 > C++ > C でランダムな浮動小数点数を生成するにはどうすればよいですか?

C でランダムな浮動小数点数を生成するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-25 09:25:17
オリジナル
299 人が閲覧しました

How Can I Generate Random Floating-Point Numbers in C  ?

C でのランダムな浮動小数点数の生成

C では、 rand() 関数は擬似乱数を作成するための信頼できるツールとして機能します。 RAND_MAX と組み合わせて単純な数学演算を実行することで、指定された間隔内でランダムな浮動小数点数を生成できます。レクリエーション プログラムや教育目的の場合は、このアプローチで十分です。ただし、要件が正規分布の真の乱数を必要とする場合は、より高度な手法の実装を検討してください。

0.0 から 1.0 までの浮動小数点を生成

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() を呼び出して乱数ジェネレーターを初期化することが重要です。この初期化は、 rand() を呼び出すたびにではなく、プログラムの実行中に 1 回だけ発生する必要があります。一般的な方法には次のものが含まれます。

srand(static_cast<unsigned>(time(0)));
ログイン後にコピー

ヘッダー ファイルのインクルード

次のヘッダー ファイルのインクルードが必要であることに注意してください。

  • rand() と srand()
  • の呼び出し用通話時間用()

以上がC でランダムな浮動小数点数を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート