ホームページ >バックエンド開発 >C++ >mingw gcc4.8.1 の std::random_device は本当にランダムですか?

mingw gcc4.8.1 の std::random_device は本当にランダムですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-21 15:57:12302ブラウズ

Is std::random_device Truly Random in mingw gcc4.8.1?

決定的ランダム性: mingw gcc4.8.1 の std::random_device

名前の意味にもかかわらず、std::random_device は常にそうとは限りません真の乱数を提供します。 cppreference.com で説明されているように、真の非決定性ソースが利用できない場合、この機能は擬似乱数エンジンを使用してシミュレートされる可能性があります。

mingw gcc4.8.1 の場合、実験により std: :random_device は、プログラムを実行するたびに一貫して同じ数値シーケンスを生成します。この決定的な動作はおそらく意図的なものであり、出力の非ランダムな性質を強調しています。

真のランダム性の実現

真に非決定的な出力を取得するには、次の代替案を検討してください。

  1. 真のランダムを含むシードソース: 利用可能な場合は、ハードウェアまたはシステム レベルのランダム ジェネレーターを使用してメルセンヌ ツイスター エンジンをシードします。
  2. 代替の std::random_device 実装を使用します。 の他の実装を調査します。 true を提供する可能性がある std::random_device
  3. 他のランダム ライブラリを検討する: 堅牢な乱数生成機能を提供する Boost.Random や Libcint などの代替オープンソース ライブラリを検討します。

これらのテクニックを利用することで、mingw の std::random_device の決定論的な動作を壊すことができます。 gcc4.8.1 を使用して、アプリケーション用の真の乱数を生成します。

以上がmingw gcc4.8.1 の std::random_device は本当にランダムですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。