我正在尝试创建一个包含 5 个元素(从 0 到 1)的随机向量
,其中包含 2 个条件- 所有元素必须小于 0.5
- 向量的总和需要为 1
例如,不允许使用此向量(因为一个元素大于 0.5)
[0.6, 0.1, 0.1, 0.1, 0.1]
例如,不允许使用此向量(因为总和大于 1)
[0.4, 0.2, 0.2, 0.2, 0.2]
例如,允许此向量
[0.3, 0.25, 0.15, 0.15, 0.15]
我使用小于 0.5 的值来缩放随机数,然后规范化总和,也做了同样的事情。
r = 0 + 0.45*rand(5,1);
s = sum(r);
norm_r = r/s
范围始终小于 0.5,总和始终等于 1。我无法判断什么数字可以乘以 rand 变量,但它必须小于 0.5,否则归一化后,一个数字可能大于 0.5。