<分区>
我在网上看到了很多关于这个问题的答案,但是,你能相信我吗?我仍然没有得到这个问题的解决方案。我有一组值。这个数组的大小是“n”。我也有定义值“sum”。我想要的是生成“n”个随机值,使其总和等于“总和”,最好是均匀分布,否则(例如)第一个随机数等于“总和”,其余随机数等于零不是很好。我需要两种算法来完成这项任务。一种是正整数,另一种是正 float 。非常感谢!
<分区>
我在网上看到了很多关于这个问题的答案,但是,你能相信我吗?我仍然没有得到这个问题的解决方案。我有一组值。这个数组的大小是“n”。我也有定义值“sum”。我想要的是生成“n”个随机值,使其总和等于“总和”,最好是均匀分布,否则(例如)第一个随机数等于“总和”,其余随机数等于零不是很好。我需要两种算法来完成这项任务。一种是正整数,另一种是正 float 。非常感谢!
最佳答案
首先生成n个随机变量。然后将它们加起来:randomSum。计算系数总和/随机总和。然后将所有随机变量乘以该系数。
整数会带来问题...也(可能)四舍五入
关于c++ - 在 C++ 中生成具有固定总和的随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24043060/