在C 中產生精確的隨機雙精度數
在C 中,您可能會遇到需要在兩個指定雙精度值之間產生隨機數的情況:所需的精確度。本文提供了針對此要求的解決方案,特別關注產生「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 產生指定範圍內的隨機雙數,而<code class="language-cpp">std::default_random_engine 提供隨機數源。
有關此解決方案的更多見解,請參閱 John D. Cook 的文章「使用 C TR1 產生隨機數」。此外,您可能會發現 Bjarne Stroustrup 的「隨機數產生」文章很有幫助。
以上是如何在 C 中產生精確的隨機雙數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!