本人小白,仅为本人学习笔记
1.问题
某同学要从6家线上商城购买5本书籍B1,B2,B3,B4,B5,每本书记在不同商家的售价及每个商家的单次运费如下表所示,请该同学制定最省钱的选购方案。
2.代码
clear;clc
%% 代码部分
M=[18 39 29 48 59 %导入每家书店对应5本书对应的价格
24 45 23 54 44
22 45 23 53 53
28 47 17 57 47
24 42 24 47 59
27 48 20 55 53];
freight=[10 15 15 10 10 15]; %导入每家店的对应的运费
valuemin=inf; %最小总花费初始化
choose=[1 1 1 1 1]; %选择书店初始化
valuemin1=M(1,1)+M(1,2)+M(1,3)+M(1,4)+M(1,5)+freight(1); %总花费初始化
for i=1:100000 %模拟随机选择100000次
choose=randi([1,6],1,5); %每本书随机选择的书店
t=unique(choose); %所购买书的书店
[n,m]=size(t);
for i1=1:5 %购买所有书的价格总和
valuemin1=valuemin1+M(choose(i1),i1);
end
for i2=1:m %加上运费,总消费的总和
valuemin1=valuemin1+freight(t(i2));
end
if valuemin>=valuemin1 %对比选择出最小花费
valuemin=valuemin1;
choose1=choose;
end
valuemin1=0;
end
disp(['最小花费为:',num2str(valuemin)]);
disp(['五本书分别到:',' ',num2str(choose1(1)),' ',num2str(choose1(2)),' ',num2str(choose1(3)),' ',num2str(choose1(4)),' ',num2str(choose1(5)) ,'购买']);