各ループ反復で同じ乱数が得られるのはなぜですか?
ループ内に srand(time(0) を実装しました) ) 関数。一意の乱数を生成することを目的としています。ただし、観察すると、carSetter 変数と Decider 変数が各ループ実行内で一貫して同じ値を出力することがわかりました。
この動作は、srand() 関数の性質に起因します。 srand() が呼び出されると、指定されたパラメーターに基づいて乱数ジェネレーターのシードが初期化されます。この場合、現在時刻を秒単位で表す time(0) が使用されます。ただし、ループは迅速に実行されるため、time(0) の値はループの繰り返しを通じて同じままになります。その結果、シードは変更されず、毎回同じ擬似乱数のシーケンスが生成されます。
この問題に対処するには、プログラムの最初に srand() を 1 回だけ呼び出して初期化することをお勧めします。ループの実行中に変更されない変数または値を含むシード。これにより、反復ごとに一意の乱数が確実に生成されます。
以上が各ループ反復で同じ乱数が得られるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。