gambler<-function(z,g,b=100){ x<-z+cumsum(2*(runif(b)>.5)-1) f<-match(c(0,g),x,nomatch=b+1) if(min(f)<=b)x[1:min(f)] else c(x,gambler(x[b],g,b=b)) } sim.ruin<-function(z,g,nrep){ win<-0 h<-0 tt<-0 for(i in 1:nrep){ x<-gambler(z,g) if(x[length(x)]==g){ win<-win+1 if(x[1]==z+1)h<-h+1 if((x[1]==z-1) & (x[2]==z-2)) tt<-tt+1 }} list(win=win,h=h,tt=tt) } sim.ruin(5,15,1000000)