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