1 / 5
文档名称:

商人过河matlab程序以及解析.doc

格式:doc   大小:20KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

商人过河matlab程序以及解析.doc

上传人:gdntv68 2022/2/21 文件大小:20 KB

下载得到文件列表

商人过河matlab程序以及解析.doc

文档介绍

文档介绍:-
. z.
数学建模作业
班级:数学131
:丁延辉
**:13190122
(二)商人过河Matlab代码
三个商人三个随从
z=zeros(30,3);||(a==0&&(b==0||b==1||b==2||b==3)) %判断(a,b)是否符合限定情况
for j=1:k %判断是否此岸a,b,c与之前有重复,如果是,结束此次循环,重新选择乘船方案
if a==z(j,1)&&b==z(j,2)&&c==z(j,3)
if m(k)~=5 %决策方案只有5种,所以m(k)<=5,
m(k)=m(k)+1; %因为有重复,所以换下一种决策方案
-
. z.
else
while (m(k)==5)&&(k>1)
k=k-1; %回溯,这一步骤已经把所有决策取尽,无可用解法,于是将后退一步,同时换下一种决策方案
end %while循环的目的是防止前面几步的决策都是5,导致k=k-1,m(k)=m(k)+1后数组越界,一直找到前面不是m(k)=5的步骤
m(k)=m(k)+1;
end
p=1;
break;
else
p=0;
end
end
if p==1 %程序在跳出内层for循环之后,因为要换成决策方案,所以同时跳出,直接进入下一次while循环,
continue;
end
if a==0&&b==0 %判断是否达到目标情况
-
. z.
answer=1;
fprintf('Successfully found!\n每一次的此岸人员分布:商人仆人\n')
for i=1:100
fprintf(' 第%2d次 %d %d \n',i,z(i,1),z(i,2))
if z(i,1)==0&&z(i,2)==0
break;
end
end %如果不是,进入下一步骤,计算z(k+2)