C++標準では、std::generate_canonical
のテンプレート機能(C++コードではなく、擬似コードのみを表示します)が[rand.util.canonical]の下でかなり厳密に指定されています。generate_canonical出力はプラットフォーム間で一貫していますか?
ですがstd::generate_canonical
が同様に同じ出力を与えること、異なるプラットフォーム上でRealType
の数学は同じように機能仕様の作者の意図であり、2つのプラットフォームで同じ出力を与える決定論URNG
のため?
この
は Is 1.0 a valid output from std::generate_canonical?のように同様の質問に関連している - 散文は1.0が除外されていると述べているが、彼らは擬似コードに与えるアルゴリズムは、時には、出力として、およびRealType
と
URNG
のいくつかの組み合わせのためにそれを含んでいます。
これは、例えばC++11 random number distributions are not consistent across platforms -- what alternatives are there?として説明されている乱数分布関数とは対照的です。標準はどのようにして正規分布がどのように生成されるのかを指定するのではなく、そのプロパティだけを指定する。
これは議論の対象となっていないDRを見つけられておらず、標準の言い回しはC++ 11、C++ 14、C++ 17のドラフト標準私は簡単にアクセスできます。