%sailor drunk man
%Darvell Powell
%Clear data and command window, standard procedure...
clc
clear
%Constant Probability
p=0.093
%Number of steps nessesary
n=12
%Range for planks (y values)
ya=[0:n:n] %Length of 12 (steps)
%First plank
xa=[-1,-1]
%Second Plank
xb=[1,1]
%Third Plank
xc=[3,3]
%Fourth Plank
xd=[5,5]
%Fifth Plank
xe=[7,7]
%Sixth Plank
xf=[9,9]
%Seventh Plank
xg=[11,11]
%Plot the planks
axis([-4 15 -4 15])
%axis([xa(1)-2, xb(1)+2, ya(1)-2, n+2])
plot(xa,ya,xb,ya,xc,ya,xd,ya,xe,ya,xf,ya,xg,ya)
#################################################################
% sailor.m
% random walk in 2-D
% does the drunken sailor make it to the boat?
n = input('Number of walks to simulate ');
nsafe = 0; % number of successes
for i = 1:n % each new walk
steps = 0; % each new walk
x = 0;
y = 0; % initial positions
% x is along the jetty
% y is transverse to desired path
while x <= 50 & abs(y) <= 8 & steps < 1000
steps = steps + 1;
r = rand;
if r < 0.6 % 60% chance of going straight
x = x + 1;
elseif r < 0.8 % 20% chance of going right
y = y + 1;
else
y = y - 1; % 20% chance of going left
end
end
if x > 50
nsafe = nsafe + 1;
end
end
prob = 100*nsafe/n;
disp(prob);
%inital position of sailor is
%(5,-3)
x = 5;
y = -3;
while x <= 11 & x >= -1 & y <= 8 & steps < 1000
steps = steps + 1;
r = rand;
if r < 0.6 % 60% chance of going straight
x = x + 1;
elseif r < 0.8 % 20% chance of going right
y = y + 1;
else
y = y - 1; % 20% chance of going left
end
end