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

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

Patricia Arquette
リリース: 2024-12-23 05:25:32
オリジナル
427 人が閲覧しました

How Can I Generate Random Floats in C  ?

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 サイトの他の関連記事を参照してください。

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