对于您的特定困境,将 rand 的输出除以常数并不是生成随机浮点数的可靠方法。虽然它可以为学习目的提供近似结果,但它不适合需要可靠随机数的严肃应用。
使用数学运算生成随机浮点
生成高精度C 中的随机浮点数,利用 C 标准库提供的函数。例如,要生成 0.0 到 1.0 之间的随机浮点数,可以使用以下代码:
float r = static_cast<float> (rand()) / static_cast<float> (RAND_MAX);
如果需要生成任意区间内的随机浮点数,请相应调整公式:
从 0.0 到X:
float r2 = static_cast<float> (rand()) / (static_cast<float> (RAND_MAX/X));
从低到高:
float r3 = LO + static_cast<float> (rand()) /( static_cast<float> (RAND_MAX/(HI-LO)));
使用真正的随机数生成器
在需要正态分布的真正随机数的情况下,请考虑采用更高级的方法,例如:
播种随机数生成器
在使用 rand() 之前,必须通过调用 srand() 来初始化随机数生成器。通常,这是通过以下方式实现的:
srand (static_cast<unsigned> (time(0)));
记住 #include 适当的标头:
通过遵守这些准则,您可以在 C 语言中有效地生成随机浮点,用于从模拟到数据分析的各种应用。
以上是如何在C中有效生成随机浮点数?的详细内容。更多信息请关注PHP中文网其他相关文章!