。比赛的跑道由周长为P面积为A的矩形构成。每单位时间,乌龟沿跑道缓慢前进一步,而兔子信心满满,每次以一个固定的概率决定走或不走。如果选择走,就从2-10步中等概率选择一个步长。每个单位时间用一个循环表示。赛跑从矩形跑道左上点(0,0)开始,并沿顺时针方向进行。不管是乌龟或兔子,谁先到达终点,比赛就告结束。要求:编写MATLAB程序可视化上述过程。程序以P,A以及兔子每次休息或前进的概率为输入参量。程序必须可视化每个时刻龟兔赛跑的进程,并以红色“*”表示乌龟,蓝色的“—”表示兔子。测试时可取P=460,A=9000。通过上述例子,可否从理论和实验角度估计兔子休息或前进的概率,,该模块功能为计算兔子的随机步长。:(截图如图1)%兔子的随机步数%数组a,长度为n,以等概率随机从a中选出m个元素%CopyRight:张添骄Date:2015/11/29functiony=move()a=2:10;n=length(a);rand_index=randperm(n);%将序号随机排列draw_rand_index=rand_index(1:1);%取出前m个序号y=a(draw_rand_index)%取出这m个序号对应的元素图1:,:(截图如图2)%可视化比赛过程clear;closeall;f=;%兔子前进的概率p=input('p=');a=input('a=');%计算矩形长x宽yx=1/4*p-1/4*(p^2-16*a)^(1/2);%求长y=1/4*p+1/4*(p^2-16*a)^(1/2);%求宽%用黑实线绘画跑道a=0:x;%长赋值b=0:y;%宽赋值plot(0,-b,'k-');holdon;plot(a,0,'k-');holdon;plot(x,-b,'k-');holdon;plot(a,-y,'k-');%动态演示l=0;s=0;fort=0:p%在总运行时间内s=1+s;%乌龟移动的距离ifrandsrc(1,1,[1,0;f,1-f])==1l=move+l;%兔子移动的距离endpause();ifs<=xplot(s,0,'r*');elseifs<=y+xplot(x,-(s-x),'r*');elseifs<=(2*x+y)plot(x-(s-(x+y)),-y,'r*');elseifs<=(2*x+2*y)plot(0,(s-(2*x+y))-y,'r*
matlab+龟兔赛跑 来自淘豆网m.daumloan.com转载请标明出处.