首頁 >後端開發 >C++ >如何在 C 中產生精確的隨機雙數?

如何在 C 中產生精確的隨機雙數?

Susan Sarandon
Susan Sarandon原創
2024-10-31 20:49:02220瀏覽

How to Generate Random Double Numbers with Precision in C  ?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn