MinGW GCC 4.8.1 で std::random_device から同じシーケンスが得られるのはなぜですか?
提供されたコードでは、インスタンスstd::random_device (rd) のはメルセンヌ ツイスター エンジンのシードとして使用されます(山)。ただし、実行のたびに同じ乱数シーケンスを取得するという観察された動作は、rd が真のランダム シードを提供していない可能性があることを示唆しています。
ドキュメント (http://en.cppreference.com/) によると、 w/cpp/numeric/random/random_device)、std::random_device は、ランダム性のために非決定的なハードウェア ソースにアクセスするように設計されています。ただし、そのようなソースが利用できない場合、実装では擬似乱数エンジンを使用することがあります。これは、MinGW GCC 4.8.1 で観察された決定論的な動作を説明する可能性があります。
random_device が真のランダム性を提供することが保証されていないことに注意することが重要です。 MinGW GCC 4.8.1 の実装など、一部の実装では、ストリームの非ランダム性を示すために、意図的に固定シーケンスを配信する場合があります。
実行ごとに異なる出力を取得するには、代替のシード方法を検討する必要があります。現在時刻に基づくシードやユーザー入力の暗号化ハッシュを使用するなど、乱数ジェネレーター。
以上が私の `std::random_device` が MinGW GCC 4.8.1 で同じシーケンスを生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。