java - 生成总和为 1 的 N 个数字

标签 java math random probability

给定一个大小为 n 的数组,我想为每个索引生成随机概率,使得 Sigma(a[0]..a[n-1])=1

一个可能的结果可能是:

0     1     2     3     4
0.15  0.2   0.18  0.22  0.25

另一个完全合法的结果可以是:

0     1     2     3     4
0.01  0.01  0.96  0.01  0.01

如何轻松快速地生成这些内容?任何语言的答案都可以,Java 优先。

最佳答案

获取 n 个随机数,计算它们的总和,并通过将每个数字除以总和将总和归一化为 1。

关于java - 生成总和为 1 的 N 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2171074/

相关文章:

Java EE 将 CDI @SessionScoped 注入(inject) EJB @Stateless session bean

java - 返回字符串数组的递归函数(JAVA)

sql - 在 SQL 中找到三个连续值的最大总和?

python - 寻找更好的方法来计算矩阵

math - 按位运算符(移位除外)在 base-10 中有任何数学意义吗?

javascript - 使用带有偏差的 Random()

java - Spring内存使用率过高

Java根据属性对对象进行排序

python - 生成多个随机(x,y)坐标,不包括重复?

python - 来自 2d numpy 数组的加权随机采样