プログラムでC++関数を使用していますが、ループでrand()
使用した後にプログラムを実行すると、プログラムが非常に遅くなることがわかりました。rand()
ループは何度も繰り返さtime()
れ、 のシードとして関数を呼び出しますrand()
。
では、C++rand()
とtime()
関数が多くのシステム リソースを消費するのではないかと考えています。
2つのこと:
1 - ループの反復ごとに rand() をシードすると述べました。これは、前の出力によってシードされるように設計されているため、PRNG のパフォーマンス (統計的パフォーマンス) を低下させる可能性があるため、不要なだけではありません。PRNG を 1 回だけシードしてから、(のみ) rand() を呼び出します。各呼び出しでシードを自動的に更新します。
2 - rand() は確かに遅いです。統計要件に応じて、厳密ではないにしても、rand() 関数を再実装するだけです。単純な PRNG は、ロジスティック マップから作成できます。
幸運を!