C での精度を備えた乱倍精度の乱数の生成
C では、指定された 2 つの double の間で乱数を生成する必要がある場合があります。希望の精度。この記事では、この要件に対する解決策を提供します。特に、「xxxxx,yyyyy」形式で数値を生成することに重点を置いています。
これを実現するには、C 11 の std::uniform_real_distribution と <code class="language-cpp">std を利用します。 ::default_random_engine コンポーネント。以下のコードは、このソリューションの実装方法を示しています。
<code class="cpp">#include <random> int main() { double lower_bound = 0; double upper_bound = 10000; std::uniform_real_distribution<double> unif(lower_bound,upper_bound); std::default_random_engine re; double a_random_double = unif(re); return 0; }</code>
このソリューションは、std::uniform_real_distribution を使用して、指定された範囲内でランダムな double 数値を生成します。一方、<code class="language-cpp">std::default_random_engine は、
このソリューションの詳細については、John D. Cook の記事「C TR1 を使用した乱数生成」を参照してください。さらに、Bjarne Stroustrup の「乱数の生成」に関する記事も役立つかもしれません。
以上がC で精度の高い乱数 Double 数値を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。