请程序高手帮忙………………
37060.5/33276/63965/48118.5/48182/19246.5/44013.5/35149/37626/2818/这10个数中,求哪几个...
37060.5/33276/63965/48118.5/48182/19246.5/44013.5/35149/37626/2818/这10个数中,求哪几个数的和等于175719
展开
1个回答
展开全部
追问
能算出结果吗?我要的是结果。不是方法。
追答
经过matlab编程验证,你这题数据有问题,运算了找不到正确的组合方式。你可以试试自己在这里面找几个数相加替换掉175719,例如 33276 63965 48118.5 48182 的和193541.5代入下面的程序,就可以运行成功。希望你能理解!
程序如下:
clear;clc
a=[37060.5 33276 63965 48118.5 48182 19246.5 44013.5 35149 37626 2818];
%b=175719;
b=193541.5;
for i=1:1023 %1023的二进制为1111111111
c=zeros(1,10); %初始化长度为10的全0数组
two=dec2bin(i); %将i转化为二进制
len=length(two);%求two的长度
for j=1:len
c(10-j+1)=str2num(two(len-j+1));%将二进制数附到c数组中,位数不够的部分为0
end
he=a.*c; %数组点乘,这样就实现了a数组中10个数的0/1背包问题,即遍历所有可能
zong=sum(he);%求出本次所选数的和
if zong==b;%与目标值进行比较,若匹配成功则输出
jieguo=he;
jieguohe=zong;
end
end
中智咨询
2024-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询