我正在寻找我的问题的解决方案。假设我有一个数字 X,现在我想生成 20 个随机数,其总和等于 X,但我希望这些随机数中包含熵。因此,例如,如果 X = 50,则算法应生成
- 3
- 11
- 0
- 6
- 19
- 7
等给定数字的总和应等于 50。 有什么简单的方法可以做到这一点吗?
谢谢
最佳答案
简单的方法: 生成 1 和 X 之间的随机数:比如 R1; 从 X 中减去 R1,现在生成一个介于 1 和 (X - R1) 之间的随机数:比如 R2。重复该过程,直到所有 Ri 都加到 X 上:即 (X-Rn) 为零。注意:每个连续的数字 Ri 将小于第一个。如果您希望最终序列看起来更随机,只需排列生成的 Ri 数即可。 IE。如果您为 X=50 生成一个数组,如:22,11,9,5,2,1 - 将其置换以获得类似 9,22,2,11,1,5 的数组。您还可以限制任何随机数的大小。
关于algorithm - 在具有熵的范围内生成 20 个随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33511167/