【发布时间】:2026-02-08 16:05:02
【问题描述】:
我想创建一个包含 N 列的矩阵(权重),其中行和应该等于 1。 也以间隔作为参数。 而且我必须找到所有可能的值集。
例如,如果 N = 3
interval = 0.01
weights = []
for i in np.arange(0,1.01,interval):
for j in np.arange(0,1.01,interval):
if i + j <= 1:
weights.append(np.array([i,j,1-(i+j)]))
如果 N = 4
interval = 0.1
weights_4 = []
for i in np.arange(0,1.1,interval):
for j in np.arange(0,1.1,interval):
for k in np.arange(0,1.1,interval):
if i + j + k <= 0:
weights_4.append(np.array([i,j,k,1-(i+j+k)]))
有没有什么方法可以使它与 N 一起动态化,并且以一种有效的方式? 提前谢谢你。
【问题讨论】:
-
如果考虑小数点,这样的组合将无限多。 @Akileshvar
-
间隔是另一个参数? @Vishnudev
-
间隔是什么意思。请明确说明输入和预期输出。
-
由于问题的构造方式,您的时间复杂度总是 O(n!) 其中
n是您的列数。由于使用append方法而不是列表理解,您的 python 代码当然会慢得多。 -
@Vishnudev 请再次检查问题,我已更新。间隔是指小数点。
标签: python arrays numpy loops matrix