ホームページ > バックエンド開発 > C++ > 私の `std::random_device` が MinGW GCC 4.8.1 で同じシーケンスを生成するのはなぜですか?

私の `std::random_device` が MinGW GCC 4.8.1 で同じシーケンスを生成するのはなぜですか?

DDD
リリース: 2024-12-31 14:41:14
オリジナル
748 人が閲覧しました

Why Does My `std::random_device` Produce the Same Sequence on MinGW GCC 4.8.1?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート