首页  >  文章  >  后端开发  >  如何在 C 中生成精确的随机双数?

如何在 C 中生成精确的随机双数?

Susan Sarandon
Susan Sarandon原创
2024-10-31 20:49:02156浏览

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