c++ - 如何生成总和为 100 的随机数?

标签 c++

我需要生成四个随机生成的数字,它们的总和必须为 100。这些数字必须在 1 到 100 的范围内。

我该怎么做?

最佳答案

您可以生成四个随机数,例如在 0..100 范围内,然后重新调整它们的总和为 100:

x_i' = 1 + x_i*96.0/sum

此解决方案不提供 {x_i} 的均匀分布。

@PeterWood 为这个问题找到了更好的答案 Random numbers that add to 100: Matlab

关于c++ - 如何生成总和为 100 的随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15088309/

相关文章:

c++ - 在初始化完成之前在单例上调用方法

c++ - 哪种持续集成工具最适合 C++ 项目?

c++ - xutility 文件?

c++ - 强制编译器选择以 const T& 作为参数的复制构造函数

c++ - 在 OSX Yosemite 上使用 Accelerate Framework 进行编译

c++ - 如何通过 GCC 检测 vsnprintf 中的隐式转换

c++ - 在窗口调整大小时重新定位图形项目

c++ - 在模板类中声明非模板函数?

c++ - 模板参数字符串与 int

c++ - 通过 TinyXML 深度复制 XML