matlab, rand함수를 이용한 두점 만나게하기
ax=[0];ay=[0];bx=[20];by=[20];c=zeros(1,2);
count=0;
for i=1:inf
r=rand(1); ax_old=[ax]; ay_old=[ay];
if r>0 && r<0.25
cx=[0]; cy=[1];
elseif r>0.25 && r<0.5
cx=[1]; cy=[0];
elseif r>0.5 && r<0.75
cx=[0]; cy=[-1];
elseif r>0.5 && r<1.0
cx=[-1]; cy=[0];
end
ax=ax+cx; ay=ay+cy;
tmpRx(count+1)=ax;
tmpRoldx(count+1)=ax_old;
tmpRy(count+1)=ay;
tmpRoldy(count+1)=ay_old;
if count~=0 && count ~=1
if tmpRoldx(count) == ax
ax=ax-cx-cx;
tmpRx(count+1)=ax;
end
if tmpRoldy(count) == ay
ay=ay-cy-cy;
tmpRy(count+1)=ay;
end
end
if ax>20
ax=ax-1;
end
if ay>20
ay=ay-1;
end
if ax<0
ax=ax+1;
end
if ay<0
ay=ay+1;
end
r=rand(1);
bx_old=[bx]; by_old=[by];
if r>0 && r<0.25
cx=[0]; cy=[1];
elseif r>0.25 && r<0.5
cx=[1]; cy=[0];
elseif r>0.5 && r<0.75
cx=[0]; cy=[-1];
elseif r>0.5 && r<1.0
cx=[-1]; cy=[0];
end
bx=bx+cx; by=by+cy;
tmpJx(count+1)=bx;
tmpJoldx(count+1)=bx_old;
tmpJy(count+1)=by;
tmpJoldy(count+1)=by_old;
if count~=0 && count ~=1
if tmpJoldx(count) == bx
bx=bx-cx-cx;
tmpJx(count+1)=bx;
end
if tmpJoldy(count) == by
by=by-cy-cy;
tmpJy(count+1)=by;
end
end
if bx>20
bx=bx-1;
end
if by>20
by=by-1;
end
if bx<0
bx=bx+1;
end
if by<0
by=by+1;
end
cla;
figure(1)
line(ax,ay,'LineStyle','pentagram','Color','r')
line(bx,by,'LineStyle','*')
axis([ 0 10 0 10])
for j= 1: count+1
line([tmpRoldx(j) tmpRx(j)],[tmpRoldy(j) tmpRy(j)],'Color','r')
end
axis([ 0 20 0 20])
for j= 1: count+1
line([tmpJoldx(j) tmpJx(j)],[tmpJoldy(j) tmpJy(j)],'Color','b')
end
axis([ 0 20 0 20])
if ax==bx && ay==by
px=[ax-1 ax-1 ax+1 ax+1];
py=[ay-1 ay+1 ay+1 ay-1];
fill(px,py,[0.9 0.2 0.5])
line(ax,ay,'LineStyle','pentagram','Color','r')
line(bx,by,'LineStyle','*')
axis([ 0 20 0 20])
pause(0.001)
return
end
annotation(figure(1),'textbox',...
[0.200764982373678 0.778341793570219 0.1776133960047 0.115059221658206],...
'String',{'200901325','','김만성'},...
'FitBoxToText','off',...
'LineStyle','none');
count =count+1;
end