:指定したランダム分布で使用する乱数エンジンのタイプは何ですか?
は- 乱数エンジン
- インスタンス化分布介してランダム分布
- プッシュエンジンから乱数をインスタンス
問題は、乱数エンジンとランダム分布の両方が、aritのタイプあなたが使用しているかっこいいです。
これら2つのタイプの算術演算はどのように関連付ける必要がありますか?
あなたは分布と反対のためのエンジン用32ビット整数と64ビット整数を使用することはできますか?危険は何ですか? 浮動小数点型はどうですか?
私は、エンジンによって生成される可能性のある数の数が、得ようとしている別個の乱数の数よりも多いか、または等しい必要があるという仮説を仮定しています。残念なことに私の仮説をテストすることはできませんでした。私のコンピュータではuint_fast32_t
とuint_fast64_t
が同じで、3つのC++ 11ジェネレータのそれぞれのエンジンが同じ結果を出すからです。
又はstd::uniform_int_distributionようなC++ 11のディストリビューションのドキュメントは、この点で不完全である:
このセクションでは不完全です。 理由:ジェネレータ
上の要件
しかしuniform_real_distribution
のexapmple gcc 4.7
実装があるため:
template<typename _UniformRandomNumberGenerator>
result_type
operator()(_UniformRandomNumberGenerator& __urng,
const param_type& __p)
{
__detail::_Adaptor<_UniformRandomNumberGenerator, result_type>
__aurng(__urng);
return (__aurng() * (__p.b() - __p.a())) + __p.a();
}
:
いかなるの出力を変換するためのアダプタクラス Generatorを特定のDistributionの入力に入れます。
「任意」は安心して聞こえるが、それは標準ですか?私は、検出が困難で、流通の正確さを損なうおそれのある隠れたオーバーフローが特に心配です。
要件はhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf(904ページ以降)に記載されています。私は答えを見つけることができませんでしたが、おそらくできますか? – Escualo