QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2359|回复: 1
打印 上一主题 下一主题

原创 野人与传教士过河问题

[复制链接]
字体大小: 正常 放大
chenhan 实名认证       

17

主题

3

听众

247

积分

升级  73.5%

  • TA的每日心情

    2012-2-11 21:05
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    群组小草的客厅

    群组建模协会 at CUP

    群组西安交大数学建模

    跳转到指定楼层
    1#
    发表于 2011-1-23 10:14 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    clear;   %清除工作区
    clc;     %清除命令区
    figure('name','传教士-野人');   %设置标题
    axis ([0 ,10,0,10]);   %建立坐标系
    hold on;
    %axis off;
    text(3,9.8,'传教士与野人过河问题','fontsize',13,'color','r');
    b1=line([2;2],[ 9;9.5],'color','k','linewidth',8);
    b2=line([2;2],[ 8;8.5],'color','b','linewidth',8);
    b3=line([2;2],[7;7.5],'color','y','linewidth',22);
    text(2.5,9.25,'---野人','fontsize',10,'color','b');
    text(2.5,8.25,'---传教士','fontsize',10,'color','b');
    text(2.5,7.25,'---船','fontsize',10,'color','b');
    text(8.9,9.7,'小组成员:','fontsize',10,'color','b');
    text(9.5,9.2,'施六五','fontsize',10,'color','b');
    text(9.5,8.7,'王鑫','fontsize',10,'color','b');
    text(9.5,8.2,'张超林','fontsize',10,'color','b');
    text(9.5,7.7,'刘晖','fontsize',10,'color','b');
    text(9.5,7.2,'赵晓鹰','fontsize',10,'color','b');
    text(9.5,6.7,'沈海严','fontsize',10,'color','b');
    fill([3,3,7,7],[0,1.5,1.5,0],[1,0.1,0.5]);
    fill([0,0,3,3],[0,2.5,2.5,0],[1,0.5,0.2]);
    fill([7,7,10,10],[0,2.5,2.5,0],[1,0.5,0.2]);
    c1=line([7.2;7.2],[ 2.5;4],'color','k','linewidth',8);
    c2=line([7.5;7.5],[ 2.5;4],'color','k','linewidth',8);
    c3=line([7.8;7.8],[ 2.5;4],'color','k','linewidth',8);
    c4=line([8.1;8.1],[ 2.5;4],'color','b','linewidth',8);
    c5=line([8.4;8.4],[ 2.5;4],'color','b','linewidth',8);
    c6=line([8.7;8.7],[ 2.5;4],'color','b','linewidth',8);
    c7=line([5;7],[1.5;1.5],'color','y','linewidth',40);
    s=0.0;
    ds=0.01;
    pausetime1=0.00000000001;
    %第一、二个野人上船
    while s<0.3
        s=s+ds;
        set(c1,'xdata',[7.2-s,7.2-s],'ydata',[2.5,4]);
        set(c2,'xdata',[7.5-2*s,7.5-2*s],'ydata',[2.5,4]);
      pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c1,'xdata',[6.9,6.9],'ydata',[2.5-s,4-s]);
        set(c2,'xdata',[6.9,6.9],'ydata',[2.5-s,4-s]);
        pause(pausetime1);
    end
    s=0;
    while s<1
        s=s+ds;
        set(c1,'xdata',[6.9-s,6.9-s],'ydata',[1.9,3.4]);
         set(c2,'xdata',[6.9-0.6*s,6.9-0.6*s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %船开始行动
    while  s<2
        s=s+ds;
        set(c7,'xdata',[5-s,7-s],'ydata',[1.5,1.5]);
        set(c1,'xdata',[5.9-s,5.9-s],'ydata',[1.9,3.4]);
        set(c2,'xdata',[6.3-s,6.3-s],'ydata',[1.9,3.4]);
        pause(pausetime1);
       % set(gcf,'doublebuffer','on');
    end
    s=0;
    %第一个野人开始上岸
    while s<0.84
        s=s+ds;
        set(c1,'xdata',[3.9-s,3.9-s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c1,'xdata',[3.06,3.06],'ydata',[1.9+s,3.4+s]);
        pause(pausetime1);
    end
    s=0;
    while s<1
        s=s+ds;
        set(c1,'xdata',[3.06-s,3.06-s],'ydata',[2.5,4]);
        pause(pausetime1);
    end
    %第二个野人返回
    s=0;
    while   s<2
        s=s+ds;
        set(c7,'xdata',[3+s,5+s],'ydata',[1.5,1.5]);
        set(c2,'xdata',[4.3+s,4.3+s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %第三个野人上船
    while s<0.8
        s=s+ds;
        set(c3,'xdata',[7.8-s,7.8-s],'ydata',[2.5,4]);
      pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c3,'xdata',[7,7],'ydata',[2.5-s,4-s]);
        pause(pausetime1);
    end
    s=0;
    while s<1
        s=s+ds;
        set(c3,'xdata',[7-s,7-s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %船开始行动
    while  s<2
        s=s+ds;
        set(c7,'xdata',[5-s,7-s],'ydata',[1.5,1.5]);
        set(c3,'xdata',[5.9-s,5.9-s],'ydata',[1.9,3.4]);
        set(c2,'xdata',[6.3-s,6.3-s],'ydata',[1.9,3.4]);
        pause(pausetime1);
       % set(gcf,'doublebuffer','on');
    end
    s=0;
    %第三个野人上岸
    while s<0.84
        s=s+ds;
        set(c3,'xdata',[3.9-s,3.9-s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c3,'xdata',[3.06,3.06],'ydata',[1.9+s,3.4+s]);
        pause(pausetime1);
    end
    s=0;
    while s<2
        s=s+ds;
        set(c3,'xdata',[3.06-s,3.06-s],'ydata',[2.5,4]);
        pause(pausetime1);
    end
    %第二个野人返回
    s=0;
    while   s<2
        s=s+ds;
        set(c7,'xdata',[3+s,5+s],'ydata',[1.5,1.5]);
        set(c2,'xdata',[4.3+s,4.3+s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %第二个野人上岸
    while s<0.7
        s=s+ds;
        %set(c1,'xdata',[7.2-s,7.2-s],'ydata',[2.5,4]);
        set(c2,'xdata',[6.3+s,6.3+s],'ydata',[1.9,3.4]);
      pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        %set(c1,'xdata',[6.9,6.9],'ydata',[2.5-s,4-s]);
        set(c2,'xdata',[7,7],'ydata',[1.9+s,3.4+s]);
        pause(pausetime1);
    end
    s=0;
    while s<1
        s=s+ds;
        %set(c1,'xdata',[6.9-s,6.9-s],'ydata',[1.9,3.4]);
         set(c2,'xdata',[7+0.6*s,7+0.6*s],'ydata',[2.5,4]);
        pause(pausetime1);
    end
    s=0;
    %第一、二个传教士上船
    while s<1.2
        s=s+ds;
        set(c4,'xdata',[8.1-s,8.1-s],'ydata',[2.5,4]);
        set(c5,'xdata',[8.4-1.25*s,8.4-1.25*s],'ydata',[2.5,4]);
      pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c4,'xdata',[6.9,6.9],'ydata',[2.5-s,4-s]);
        set(c5,'xdata',[6.9,6.9],'ydata',[2.5-s,4-s]);
        pause(pausetime1);
    end
    s=0;
    while s<1
        s=s+ds;
        set(c4,'xdata',[6.9-s,6.9-s],'ydata',[1.9,3.4]);
         set(c5,'xdata',[6.9-0.6*s,6.9-0.6*s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %船开始行动
    while  s<2
        s=s+ds;
        set(c7,'xdata',[5-s,7-s],'ydata',[1.5,1.5]);
        set(c4,'xdata',[5.9-s,5.9-s],'ydata',[1.9,3.4]);
        set(c5,'xdata',[6.3-s,6.3-s],'ydata',[1.9,3.4]);
        pause(pausetime1);
       % set(gcf,'doublebuffer','on');
    end
    s=0;
    %第一、二个传教士上岸
    while s<0.84
        s=s+ds;
        set(c4,'xdata',[3.9-s,3.9-s],'ydata',[1.9,3.4]);
        set(c5,'xdata',[4.3-1.4*s,4.3-1.4*s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c4,'xdata',[3.06,3.06],'ydata',[1.9+s,3.4+s]);
        set(c5,'xdata',[3.124,3.124],'ydata',[1.9+s,3.4+s]);
        pause(pausetime1);
    end
    s=0;
    while s<1.5
        s=s+ds;
        set(c4,'xdata',[3.06-s,3.06-s],'ydata',[2.5,4]);
        set(c5,'xdata',[3.124-1.5*s,3.124-1.5*s],'ydata',[2.5,4]);
        pause(pausetime1);
    end
    s=0;
    %第一个野人、传教士上船
    while s<1
        s=s+ds;
        set(c1,'xdata',[2.06+s,2.06+s],'ydata',[2.5,4]);
        set(c4,'xdata',[1.56+1.5*s,1.56+1.5*s],'ydata',[2.5,4]);
        pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c1,'xdata',[3.06,3.06],'ydata',[2.5-s,4-s]);
        set(c4,'xdata',[3.06,3.06],'ydata',[2.5-s,4-s]);
        pause(pausetime1);
    end
    s=0;
    while s<0.84
        s=s+ds;
        set(c1,'xdata',[3.06+s,3.06+s],'ydata',[1.9,3.4]);
        set(c4,'xdata',[3.06+1.47*s,3.06+1.47*s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %第一个传教士和第一个野人返回
    while   s<2
        s=s+ds;
        set(c7,'xdata',[3+s,5+s],'ydata',[1.5,1.5]);
        set(c4,'xdata',[4.3+s,4.3+s],'ydata',[1.9,3.4]);
        set(c1,'xdata',[3.9+s,3.9+s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %第一个野人、第一个传教士上岸
    while s<1
        s=s+ds;
        set(c4,'xdata',[6.3+0.6*s,6.3+0.6*s],'ydata',[1.9,3.4]);
        set(c1,'xdata',[5.9+s,5.9+s],'ydata',[1.9,3.4]);
      pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c4,'xdata',[6.9,6.9],'ydata',[1.9+s,3.4+s]);
        set(c1,'xdata',[6.9,6.9],'ydata',[1.9+s,3.4+s]);
        pause(pausetime1);
    end
    s=0;
    while s<0.3
        s=s+ds;
        set(c4,'xdata',[6.9+(1+1/3)*s,6.9+(1+1/3)*s],'ydata',[2.5,4]);
         set(c1,'xdata',[6.9+s,6.9+s],'ydata',[2.5,4]);
        pause(pausetime1);
    end
    s=0;
    %第三个传教士上船
    while s<1.8
        s=s+ds;
        set(c6,'xdata',[8.7-s,8.7-s],'ydata',[2.5,4]);
         set(c4,'xdata',[8.1-2/3*s,8.1-2/3*s],'ydata',[2.5,4]);
      pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c6,'xdata',[6.9,6.9],'ydata',[2.5-s,4-s]);
        set(c4,'xdata',[6.9,6.9],'ydata',[2.5-s,4-s]);
        pause(pausetime1);
    end
    s=0;
    while s<1
        s=s+ds;
        set(c6,'xdata',[6.9-s,6.9-s],'ydata',[1.9,3.4]);
        set(c4,'xdata',[6.9-0.6*s,6.9-0.6*s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %船开始行动
    while  s<2
        s=s+ds;
        set(c7,'xdata',[5-s,7-s],'ydata',[1.5,1.5]);
        set(c6,'xdata',[5.9-s,5.9-s],'ydata',[1.9,3.4]);
        set(c4,'xdata',[6.3-s,6.3-s],'ydata',[1.9,3.4]);
        pause(pausetime1);
       % set(gcf,'doublebuffer','on');
    end
    s=0;
    %第二、三传教士上对岸
    while s<0.84
        s=s+ds;
        set(c6,'xdata',[3.9-s,3.9-s],'ydata',[1.9,3.4]);
        set(c4,'xdata',[4.3-1.5*s,4.3-1.5*s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c6,'xdata',[3.06,3.06],'ydata',[1.9+s,3.4+s]);
        set(c4,'xdata',[3.06,3.06],'ydata',[1.9+s,3.4+s]);
        pause(pausetime1);
    end
    s=0;
    while s<1
        s=s+ds;
        set(c6,'xdata',[3.06-s,3.06-s],'ydata',[2.5,4]);
        set(c4,'xdata',[3.06-1.2*s,3.06-1.2*s],'ydata',[2.5,4]);
        pause(pausetime1);
    end
    s=0;
    %第三野人上船
    while s<2
        s=s+ds;
        set(c3,'xdata',[1.06+s,1.06+s],'ydata',[2.5,4]);
        pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c3,'xdata',[3.06,3.06],'ydata',[2.5-s,4-s]);
        pause(pausetime1);
    end
    s=0;
    while s<0.84
        s=s+ds;
        set(c3,'xdata',[3.06+s,3.06+s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %第三个野人返回
    while   s<2
        s=s+ds;
        set(c7,'xdata',[3+s,5+s],'ydata',[1.5,1.5]);
        set(c3,'xdata',[3.9+s,3.9+s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %第一个野人上船
    while s<0.3
        s=s+ds;
        set(c1,'xdata',[7.2-s,7.2-s],'ydata',[2.5,4]);
        %set(c2,'xdata',[7.5-2*s,7.5-2*s],'ydata',[2.5,4]);
      pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c1,'xdata',[6.9,6.9],'ydata',[2.5-s,4-s]);
        %set(c2,'xdata',[6.9,6.9],'ydata',[2.5-s,4-s]);
        pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c1,'xdata',[6.9-s,6.9-s],'ydata',[1.9,3.4]);
         %set(c2,'xdata',[6.9-0.6*s,6.9-0.6*s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %船开始行动
    while  s<2
        s=s+ds;
        set(c7,'xdata',[5-s,7-s],'ydata',[1.5,1.5]);
        set(c3,'xdata',[5.9-s,5.9-s],'ydata',[1.9,3.4]);
        set(c1,'xdata',[6.3-s,6.3-s],'ydata',[1.9,3.4]);
        pause(pausetime1);
       % set(gcf,'doublebuffer','on');
    end
    s=0;
    %第三个野人上岸
    while s<0.84
        s=s+ds;
        set(c3,'xdata',[3.9-s,3.9-s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c3,'xdata',[3.06,3.06],'ydata',[1.9+s,3.4+s]);
        pause(pausetime1);
    end
    s=0;
    while s<2.7
        s=s+ds;
        set(c3,'xdata',[3.06-s,3.06-s],'ydata',[2.5,4]);
        pause(pausetime1);
    end
    %第一个野人返回
    s=0;
    while   s<2
        s=s+ds;
        set(c7,'xdata',[3+s,5+s],'ydata',[1.5,1.5]);
        set(c1,'xdata',[4.3+s,4.3+s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %第二个野人上船
    while s<0.3
        s=s+ds;
        %set(c1,'xdata',[7.2-s,7.2-s],'ydata',[2.5,4]);
        set(c2,'xdata',[7.5-2*s,7.5-2*s],'ydata',[2.5,4]);
      pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        %set(c1,'xdata',[6.9,6.9],'ydata',[2.5-s,4-s]);
        set(c2,'xdata',[6.9,6.9],'ydata',[2.5-s,4-s]);
        pause(pausetime1);
    end
    s=0;
    while s<1
        s=s+ds;
        %set(c1,'xdata',[6.9-s,6.9-s],'ydata',[1.9,3.4]);
         set(c2,'xdata',[6.9-s,6.9-s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    %船开始行动
    while  s<2
        s=s+ds;
        set(c7,'xdata',[5-s,7-s],'ydata',[1.5,1.5]);
        set(c2,'xdata',[5.9-s,5.9-s],'ydata',[1.9,3.4]);
        set(c1,'xdata',[6.3-s,6.3-s],'ydata',[1.9,3.4]);
        pause(pausetime1);
       % set(gcf,'doublebuffer','on');
    end
    s=0;
    %第一、二野人上岸
    while s<0.84
        s=s+ds;
        set(c2,'xdata',[3.9-s,3.9-s],'ydata',[1.9,3.4]);
        set(c1,'xdata',[4.3-1.5*s,4.3-1.5*s],'ydata',[1.9,3.4]);
        pause(pausetime1);
    end
    s=0;
    while s<0.6
        s=s+ds;
        set(c2,'xdata',[3.06,3.06],'ydata',[1.9+s,3.4+s]);
        set(c1,'xdata',[3.06,3.06],'ydata',[1.9+s,3.4+s]);
        pause(pausetime1);
    end
    s=0;
    while s<2
        s=s+ds;
        set(c2,'xdata',[3.06-s,3.06-s],'ydata',[2.5,4]);
        set(c1,'xdata',[3.06-1.2*s,3.06-1.2*s],'ydata',[2.5,4]);
        pause(pausetime1);
    end







    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    chenhan 实名认证       

    17

    主题

    3

    听众

    247

    积分

    升级  73.5%

  • TA的每日心情

    2012-2-11 21:05
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    群组小草的客厅

    群组建模协会 at CUP

    群组西安交大数学建模

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-11-28 15:36 , Processed in 1.890212 second(s), 56 queries .

    回顶部