関数は同じ乱数値を複数回出力します
C では、 rand() 関数は乱数を作成するために頻繁に利用されます。ただし、この関数が 1 つの関数内で複数回呼び出される場合、同じ結果が生成される可能性があります。これは、特に初心者プログラマにとっては、困惑する可能性があります。
この問題を理解するには、rand() がどのように動作するかを理解することが重要です。内部的には、一連の数値を生成するために使用されるシード値を維持します。デフォルトでは、srand() は現在の時刻を使用して初期化され、さまざまな関数呼び出し間でシードが一意であることが保証されます。
ただし、srand() が再度呼び出されると、シードはリセットされ、一連の数値が発生します。再起動します。これにより、rand() が呼び出されるたびに同じ乱数が生成されます。
この問題を解決するには、rand() を呼び出すたびに srand() を呼び出さないようにすることが不可欠です。代わりに、srand() はシードが正しく設定され、プログラムの実行全体を通じて維持されるようにするために、通常はプログラムの最初に 1 回だけ初期化する必要があります。
これらの変更を実装することで、rand を確実に初期化できます。 () は一意の乱数を確実に生成し、出力の重複の問題を排除します。
以上がC rand() 関数が同じ乱数を複数回返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。