各ループ反復で同じ乱数が得られるのはなぜですか?

DDD
リリース: 2024-11-04 11:50:02
オリジナル
159 人が閲覧しました

Why Do I Get the Same Random Numbers in Each Loop Iteration?

各ループ反復で同じ乱数が得られるのはなぜですか?

ループ内に srand(time(0) を実装しました) ) 関数。一意の乱数を生成することを目的としています。ただし、観察すると、carSetter 変数と Decider 変数が各ループ実行内で一貫して同じ値を出力することがわかりました。

この動作は、srand() 関数の性質に起因します。 srand() が呼び出されると、指定されたパラメーターに基づいて乱数ジェネレーターのシードが初期化されます。この場合、現在時刻を秒単位で表す time(0) が使用されます。ただし、ループは迅速に実行されるため、time(0) の値はループの繰り返しを通じて同じままになります。その結果、シードは変更されず、毎回同じ擬似乱数のシーケンスが生成されます。

この問題に対処するには、プログラムの最初に srand() を 1 回だけ呼び出して初期化することをお勧めします。ループの実行中に変更されない変数または値を含むシード。これにより、反復ごとに一意の乱数が確実に生成されます。

以上が各ループ反復で同じ乱数が得られるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!