如何有效地随机化所有相同浮点数的相对较小的数组,保留总和?
例如:
我有一组相等的浮点数:
[ 0.1, 0.1, 0.1, 0.1, 0.1 ] // sum === 0.5
Run Code Online (Sandbox Code Playgroud)
我想像这样随意化:
[ 0.1, 0.2, 0.0, 0.15, 0.05 ] // sum === 0.5
Run Code Online (Sandbox Code Playgroud)
初始数组总是具有相同的值,但它可以在各种范围内:
[ 3.56, 3.56, 3.56, 3.56, 3.56 ]
Run Code Online (Sandbox Code Playgroud)
我不知道这些初始阵列的最终实际大小,但我猜它们的长度在50到100之间.
(仅供参考:这些是音符持续时间,如果算法是音乐会的奖励积分)
1)计算0和1之间的n个随机浮点数
2)计算这n个数的总和.
3)你必须将总和除以自己,然后乘以你想得的总和(在下面的结果中).因此,如果将1)中生成的n个数字中的每一个除以2)中计算的总和,并将结果乘以resultum,那么您将获得结果中所需的随机数.
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |