matlab如何实现数组中任意个数元素的求和!
有一个一维数组A,共28个元素,现要找出这些元素中求和为x的元素,该如何实现?求和元素的个数不定。有哪位大虾知道的麻烦告诉一下,万分感谢了!...
有一个一维数组A,共28个元素,现要找出这些元素中求和为x的元素,该如何实现?求和元素的个数不定。有哪位大虾知道的麻烦告诉一下,万分感谢了!
展开
2个回答
展开全部
给你提供一个暴力算法,思路是:循环开始,把28个数随机打乱,分别取第一个数,前2个、前3个、前4个......数求和,当找到求和满足的为止,循环结束,数组a和那个和自己输入,代码:
clc;
clear;
%一维数组
a=[];
%要满足的目标和
target=50;
sig=1;
while sig
xuhao=randperm(28);
xuhao_a=a(xuhao);
for i=1:28
si=sum(xuhao_a(1:i));
if si==target
index=xuhao(1:i);
index_a=a(index);
sig=0;
break;
end
end
end
index=sort(index);
disp('达到目标求和的数在数组中序号');
disp(index);
disp('满足要求的数');
disp(index_a);
虽然思路是暴力算法,但幸亏你的数据不大,结果出的还是很快的
clc;
clear;
%一维数组
a=[];
%要满足的目标和
target=50;
sig=1;
while sig
xuhao=randperm(28);
xuhao_a=a(xuhao);
for i=1:28
si=sum(xuhao_a(1:i));
if si==target
index=xuhao(1:i);
index_a=a(index);
sig=0;
break;
end
end
end
index=sort(index);
disp('达到目标求和的数在数组中序号');
disp(index);
disp('满足要求的数');
disp(index_a);
虽然思路是暴力算法,但幸亏你的数据不大,结果出的还是很快的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询