农夫,狐狸,鸡,米的程序
更新时间:2023-09-05 18:26:01 阅读量: 教育文库 文档下载
一个有关农夫,狐狸,鸡,米过河的matlab程序
a0=[ 0 0 0 0];%左岸初态其中(农夫,狐狸,鸡,小米)
c0=[ 0 0 0 0];
d0=[ 0 0 0 0];
flag=0;
a1=[0 0 0 0];%右岸的状态
a2=[ 1 1 1 1];%表示左岸壮态
b=[1 1 0 0;1 0 1 0;1 0 0 1];
status=[0 0 0 0];
maxlter=100;
for i=1:100
for j=1:3
statusc=a2;
a2=a2-b(j,:);
if(a2==[0 0 0 0])
flag=1;
c0=[c0;b(j,:)];%来的状态
break;
end
statust=a2;
if(check(a2)==1)%检查左岸是否可行
a1=a1+b(j,:);
c0=[c0;b(j,:)];%来的状态
if(a1==[1 1 1 1])
flag=1;
break;
else
sta=a1;
a1=a1-[1 0 0 0];
if(check(a1)==1)%检查农夫一个人回去右岸是否可以
d0=[d0;[1 0 0 0]];%回去的状态
a2=a2+[1 0 0 0];
break;
else %检查农夫一个人回去右岸是否可以
a1=sta;
for k=2:3 %如果不行,那他将带谁去;
a1=a1-b(k,:);
if(check(a1)==1)
d0=[d0;b(k,:)];%回去的状态
a2=a2+b(k,:);
break;
end
a1=a1+b(k,:);
end
end
end
end
if a2==statust
a2=statusc;
end
end
if(flag==1)
disp('划船从左岸去右岸1代表上船:')
disp('农夫 狐狸 鸡 小米')
c0(2:end,:)
disp('划船从右岸回左岸1代表上船:')
disp('农夫 狐狸 鸡 小米')
d0(2:end,:)
break;
end
end
function s=check(a)
r=find(a==1);
s=0;
x=0;%代表狐狸0不在,1在
y=0;%代表鸡0不在,1在
z=0;%代表小米0不在,1在
if length(find(a==1))==1&length(find(a>=0))==4
s=1;
end
for i=1:length(r)
if(r(i)==1)
s=1;
end
if(r(i)==2)
x=1; %代表狐狸
end
if(r(i)==3)
y=1;
end
if(r(i)==4)
z=1;
end
e
nd
if(y==0&x==1&z==1)
s=1;
end
划船从左岸去右岸1代表上船:
农夫 狐狸 鸡 小米
ans =
1 0 1 0
1 1 0 0
1 0 1
一个有关农夫,狐狸,鸡,米过河的matlab程序
0
1 0 0 1
1 0 1 0
划船从右岸回左岸1代表上船:
农夫 狐狸 鸡 小米
ans =
1 0 0 0
1 0 1 0
1 0 1 0
1 0 0 0
>>
正在阅读:
农夫,狐狸,鸡,米的程序09-05
公司市场环境分析模板08-10
雨中的微笑作文600字06-19
高中励志英文演讲稿04-16
2021小学二年级暑假学习计划表06-05
2013.11期中高一数学试题06-08
手把手教你安装算量 - 全程电气专业操作流程 - 图文10-07
不用运动减肥的方法有什么07-11
2021年物业保安管理工作心得体会合集08-05
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 农夫
- 狐狸
- 程序
- 米的