假设我在 A 中有 7 个项目,在 B 中有 4 个项目
A=[10;40;90;130;200;260;320]
B=[100;300;500;1000]
我想要列出可能的组合,其中:
- 必须包含A 的所有子组件
- 可以添加 B 的子组件,直到添加的所有子组件的总和大于 2000
任何人都知道如何在 Matlab 中做到这一点?
我的尝试:
X=sum(A);
y=1;
for Y=1:((length(A))-1);
X=X+B(y);
if(X>2000)
disp('Following is unacceptable')
end
y=y+1
end
但是,此代码不正确。它只是添加 B 的第一个元素,然后将其添加到第二个元素,依此类推。它没有为我提供可能的组合。
例子 :
- 总和(A)+ B(1)=确定
- 总和(A)+ B(4)=不正确
- 总和(A)+ B(1)+ B(2)=确定
- 总和(A)+ B(2)+ B(3)=确定
- ETC...
如果将来 A 或 B 的值发生变化,我希望这可以自动化。我不确定这是否也是概率的情况。