夫妻过河问题源码

夫妻过河问题源码

ID:12067826

大小:35.50 KB

页数:3页

时间:2018-07-15

夫妻过河问题源码_第1页
夫妻过河问题源码_第2页
夫妻过河问题源码_第3页
资源描述:

《夫妻过河问题源码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、functiony=boat()m=input('输入夫妻对数:');k=input('输入船的最大容量:');fori=1:m+1A=[m,i-1];B{i}=A;%B表示可取状态endfori=m+2:2*mA=[i-(m+1),i-(m+1)];B{i}=A;endfori=2*m+1:3*m+1A=[0,i-(2*m+1)];B{i}=A;end%下面的for语句是根据参数k算出所有决策d,用C表示.t=1;foru=0:1:kforv=0:1:kifu+v>=1&u+v<=kC{t}=[u,v];t=t+1;endendendD{1,1}

2、=[m,m];%D{1,1}表示初始状态.w=1;%w控制是否能够迭代成功.h=1;%h控制元素的个数.j=2;%j表示迭代的次数.x=0;%x是用来剔除掉不在允许状态集合中的元素.y=0;%y是防止重复剔除同一个元素.l=0;%l使用来标记元素是否被剔除.z(1)=0;z(2)=1;%z(j)表示上一步迭代后所剩下的所有元素.whilew>0%p表示可以进行下一步迭代的所有元素.forp=z(j-1)+1:z(j)%q表示每一个元素要经过k*(k+3)/2种决策迭代.forq=1:k*(k+3)/2D{h+1,j}=D{p,j-1}+(-1)^(

3、j-1).*C{q};h=h+1;l=1;%下面的for语句是核查迭代结果是否在允许状态集合B中.fore=1:3*m+1ifD{h,j}==B{e}x=1;break;endendifx==0h=h-1;y=1;l=0;end%下面的if语句是剔除掉本次迭代过程中出现的重复元素.ifj>2&y==0fori=z(j)+1:h-1ifD{h,j}==D{i,j};h=h-1;l=0;break;endendend%下面的if语句是剔除掉以前重复的元素.ifj>2&y==0ifj==3fori=z(1)+1:z(2)ifD{h,j}==D{i,j-2

4、}h=h-1;l=0;break;endendelsefori=z(j-2)+1:z(j-1)ifD{h,j}==D{i,j-2}h=h-1;l=0;break;endendendendifl==1forg=1:j-1D{h,g}=D{p,g};endendifl==1&D{h,j}==[0,0]w=-1;%w=-1表示可以在有限的步骤下安全过河.break;endx=0;y=0;l=0;endifw==-1;%w=-1表示可以在有限的步骤下安全过河.break;endendj=j+1;z(j)=h;ifz(j)==z(j-1)w=-2;%w=-2

5、表示不可以在有限的步骤下安全过河.break;endendifw==-1forg=1:j-1D{h,g}endendifw==-2disp('不能按规定过河');end

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。