请程序高手帮忙………………

‍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 展开
 我来答
爱问爱答者
2014-03-07 · TA获得超过121个赞
知道答主
回答量:33
采纳率:100%
帮助的人:39.5万
展开全部
这是背包问题的一种,方法很多种,详见百度百科。

http://baike.baidu.com/view/841810.htm
追问
能算出结果吗?我要的是结果。不是方法。
追答
经过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 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。... 点击进入详情页
本回答由中智咨询提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式