snakes_matrix, an Octave code which computes the transition matrix for the game of Snakes and Ladders.
Snakes and Ladders is a children's game played on a 10x10 numbered board. A player's turn consists of rolling a single die, and moving the indicated number of squares. If the final square is the foot of a ladder, the player moves up to a higher numbered square. If the final square is the mouth of a snake, the player moves downward.
By adding a square 0, where the player begins, the game board can be modeled as a vector of length 101, and the transitions from one square to another can be modeled by a transition matrix. Most commonly, the entries in row I will be zero except that columns I+1 through I+6 will have the value 1/6. However, rows which correspond to a snake or ladder, and rows for which I+6 is greater than 100, must be handled specially.
Given the transition matrix A, the one player game can be modeled as a Markov Chain Monte Carlo system. In particular, given an initial starting vector v, the probability distribution after one move is the vector A' * v, and repeated multiplication by A' will display the exact probability distribution at every step.
The computer code and data files made available on this web page are distributed under the MIT license
snakes_matrix is available in a MATLAB version and an Octave version and a Python version.
jordan_matrix, an Octave code which returns a random matrix in Jordan canonical form.
levenshtein_matrix, an Octave code which returns the Levenshtein distance matrix defined by two strings.
monopoly_matrix, an Octave code which computes the adjacency and transition matrices for the game of Monopoly.
plasma_matrix, an Octave code which sets up a matrix associated with a problem in plasma physics.
risk_matrix, an Octave code which computes the transition and adjacency matrix for the game of risk.
test_matrix, an Octave code which defines test matrices for which the condition number, determinant, eigenvalues, eigenvectors, inverse, null vectors, P*L*U factorization or linear system solution are known. Examples include the Fibonacci, Hilbert, Redheffer, Vandermonde, Wathen and Wilkinson matrices.
wathen_matrix, an Octave code which compares storage schemes (full, banded, sparse triplet, sparse) and solution strategies (A\x, linpack, conjugate gradient (CG)) for linear systems involving the Wathen matrix, which can arise when solving a problem using the finite element method (FEM).