c++ - 如何在 RAND 函数中获得更小的比例

标签 c++ c

我使用此代码创建 0 到 1 之间的随机数。

randnumber = (double)((double)rand() / (double)RAND_MAX);

这行代码经常给出像 0.650434、0.302340 和 0.906789 这样的数字,这对我来说是很大的数字。问题是我需要较小的范围数字,例如这些数字:0.000200、0.000100、0.000400、0.000600 等等。 如何修改这行代码以获得结果?

最佳答案

您知道您正在寻找哪种概率分布函数吗?如果您仍然想要统一,您可以简单地将 [0,1) 结果除以一个大数并应用移位,以便它以您想要的值为中心。

如果你想要正态分布的东西,你可以使用类似逆变换 method 的东西。 。同样,您需要将其居中并修改标准差。其他发行版也有类似的转换

关于c++ - 如何在 RAND 函数中获得更小的比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17701691/

相关文章:

c++ - 根据编译开关/NDEBUG 在 std::vector 的 at() 和 operator[] 之间交换

c++ - 如何在 Mac OS 上获取视频捕获设备(网络摄像头)列表? (C++)

c++ - Floyd 的循环查找算法

CS5Ox Pset4 恢复 : code only recovers partial images

c++ - 使用#pragma once 有什么危险?

C++ 初学者 - 简单的代码块崩溃,原因不明

c++ - 如何使用 c++ 将字符串散列为 int?

c - gdb中如何处理单行换行成多行?

c - 访问超出 malloc() 的内存

c - 如何将包含空格的#define 替换列表映射到整数(ID)?