C 11 では、柔軟性を高めることを目的として、乱数を生成するための新機能が導入されました。パフォーマンスと一貫性。これらの機能には、rand() などの従来の乱数生成器の制限に対処する乱数エンジンと分散が含まれます。
エンジンは乱数生成の中核です。これらは擬似乱数のシーケンスを生成し、分布の均一性を保証します。 C 11 は、次のようないくつかのエンジン オプションを提供します。
Distribution は、目的の乱数分布を記述します。 C 11 には、以下を生成するための分布が含まれています。
C で乱数を生成するには11、次の手順に従います:
#include <random> // Engine std::mt19937 rng(std::random_device()()); // Distributions std::uniform_int_distribution<uint32_t> uint_dist; std::normal_distribution<double> normal_dist(0.5, 0.2); // Generate random numbers while (true) { std::cout << uint_dist(rng) << " " << normal_dist(rng) << std::endl; }
均等可能性の高い結果では、指定された範囲内の各数値が同じ確率で生成されることが保証され、乱数生成における偏りは明らかです。
C 11 の乱数生成は同時実行性をサポートしています。スレッドの安全性を確保するには、各スレッドに独自のエンジンを一意のシードで割り当てるか、エンジン オブジェクトへのアクセスを同期します。
以上がC 11 は乱数生成をどのように改善しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。