# The probability transition matrix trans = matrix(c(1/3,1/3,1/3, 0,2/3,1/3, 2/3,0,1/3), ncol=3, byrow=TRUE); # Markov chain simultation function run = function() { # The state that we're starting in state = sample(1:3, 1); cat("Starting state:", state, "\n"); # Make twenty steps through the markov chain for (i in 1:20) { cat("> Dist:", paste(round(c(trans[state,]), 2)), "\n"); newState <- sample(1:ncol(trans), 1, prob=trans[state,]) cat("*", state, "->", newState, "\n"); state = newState; } }