Tossing a Coin Many Times

**COIN_SIMULATION**
is a MATLAB library which
looks at ways of simulating or visualizing the results of
many tosses of a fair or biased coin.

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

**COIN_SIMULATION** is available in
a MATLAB version.

BROWNIAN_MOTION, a MATLAB library which simulates Brownian motion in an M-dimensional region.

DICE_SIMULATION, a MATLAB program which simulates N tosses of M dice, making a histogram of the results.

DUEL_SIMULATION, a MATLAB program which simulates N repetitions of a duel between two players, each of whom has a known firing accuracy.

FAIR_DICE_SIMULATION, a MATLAB program which simulates N tosses of 2 dice, making a histogram of the results.

GAMBLERS_RUIN_SIMULATION, a MATLAB program which simulates the game of gambler's ruin.

HIGH_CARD_SIMULATION, a MATLAB program which simulates a situation in which you see the cards in a deck one by one, and must select the one you think is the highest and stop.

ISING_2D_SIMULATION, a MATLAB program which carries out a Monte Carlo simulation of an Ising model, a 2D array of positive and negative charges, each of which is likely to flip to be in agreement with neighbors.

LORENZ_SIMULATION, a MATLAB program which solves the Lorenz equations and displays the solution, for various starting conditions.

POISSON_SIMULATION, a MATLAB library which simulates a Poisson process in which events randomly occur with an average waiting time of Lambda.

RANDOM_WALK_1D_SIMULATION, a MATLAB program which simulates a random walk in a 1-dimensional region.

RANDOM_WALK_2D_AVOID_SIMULATION, a MATLAB program which simulates a self-avoiding random walk in a 2-dimensional region.

RANDOM_WALK_2D_AVOID_TASKS, a MATLAB program which computes many self avoiding random walks in a 2-dimensional region by creating a job which defines each walk as a task, and then computes these independently using MATLAB's Parallel Computing Toolbox task computing capability.

RANDOM_WALK_2D_SIMULATION, a MATLAB program which simulates a random walk in a 2-dimensional region.

RANDOM_WALK_3D_SIMULATION, a MATLAB program which simulates a random walk in a 3-dimensional region.

REACTOR_SIMULATION, a MATLAB program which is a simple Monte Carlo simulation of the shielding effect of a slab of a certain thickness in front of a neutron source. This program was provided as an example with the book "Numerical Methods and Software."

ROULETTE_SIMULATION, a MATLAB program which simulates the spinning of a roulette wheel and the evaluation of certain common roulette bets.

SIR_SIMULATION, a MATLAB program which simulates the spread of a disease through a hospital room of M by N beds, using the Susceptible/Infected/Recovered (SIR) model.

STRING_SIMULATION, a MATLAB program which simulates the behavior of a vibrating string by solving the corresponding initial boundary value problem (IBVP), creating files that can be displayed by gnuplot.

THREE_BODY_SIMULATION, a MATLAB program which simulates the behavior of three planets, constrained to lie in a plane, and moving under the influence of gravity, by Walter Gander and Jiri Hrebicek.

TRAFFIC_SIMULATION, a MATLAB program which simulates the cars waiting to get through a traffic light.

TRUEL_SIMULATION, a MATLAB program which simulates N repetitions of a duel between three players, each of whom has a known firing accuracy.

TWO_BODY_SIMULATION, a MATLAB program which simulates the behavior of two bodies, constrained to lie in a plane, moving under the influence of gravity, with one body much more massive than the other.

- coin_average_plot.m, displays the running averages of N tosses of a coin.
- coin_barchart.m, displays a barchart of Heads versus tails after N tosses of a coin.
- coin_biased.m, simulates N tosses of a biased coin;
- coin_biased_test.m
- coin_plot.m, displays the tosses in a sequence of N tosses of a coin.
- coin_sign_plot.m, displays the sign (-1, 0 or +1) of the running sum of N tosses of a fair coin.
- coin_streak.m, indicates streaks of the same value in N tosses of a coin.
- coin_streak_test.m
- coin_streak_plot.m, displays the Head/Tail streaks in N tosses of a coin.
- coin_sum_plot.m, displays the running sums of N tosses of a coin.
- coin_uniform.m, simulates N tosses of a fair coin;
- coin_uniform_test.m
- coins_average_plot.m, displays the running averages of M sets of N tosses of a coin.
- coins_biased.m, simulates M sets of N tosses of a biased coin;
- coins_plot.m, displays the tosses in M sequences of N tosses of a coin.
- coins_sum_plot.m, displays the running sums in M sets of N tosses of a coin.
- coins_uniform.m, simulates M sets of N tosses of a fair coin;
- r8row_print.m, prints an R8ROW;
- r8row_print_test.m
- r8row_print_some.m, prints some of an R8ROW;
- r8row_print_some_test.m
- r8row_running_average.m, computes the running averages of an R8ROW;
- r8row_running_average_test.m
- r8row_running_sum.m, computes the running averages of an R8ROW;
- r8row_running_sum_test.m
- r8row_uniform_ab.m, returns an R8ROW of scaled pseudorandom numbers;
- r8row_uniform_ab_test.m
- r8vec_print.m, prints an R8VEC;
- r8vec_print_test.m
- r8vec_running_average.m, computes the running averages of an R8VEC;
- r8vec_running_average_test.m
- r8vec_running_sign3.m, computes the running sign3 of an R8VEC;
- r8vec_running_sign3_test.m
- r8vec_running_sum.m, computes the running averages of an R8VEC;
- r8vec_running_sum_test.m
- r8vec_uniform_ab.m, returns a scaled pseudorandom R8VEC;
- r8vec_uniform_ab_test.m
- timestamp.m, prints the current YMDHMS date as a time stamp.

Some plots are created by the tests:

- coin_biased_average.png
- coin_biased_barchart.png
- coin_biased_plot.png
- coin_biased_sign.png
- coin_biased_streak.png
- coin_biased_sum.png
- coin_uniform_average.png
- coin_uniform_barchart.png
- coin_uniform_plot.png
- coin_uniform_sign.png
- coin_uniform_streak.png
- coin_uniform_sum.png
- coins_uniform_average.png
- coins_uniform_plot.png
- coins_uniform_sum.png

Some data files are available for 100 biased or uniform tosses:

- coin_biased_100_m1p1.txt, 100 tosses of a biased coin, recorded as -1 or +1, on a single line.
- coin_biased_100_th.txt, 100 tosses of a biased coin, recorded as "T" or "H", on a single line.
- coin_biased_10x10_m1p1.txt, 100 tosses of a biased coin, considered as 10 experiments of 10 tosses, recorded as -1 or +1, on 10 lines.
- coin_biased_10x10_th.txt, 100 tosses of a biased coin, considered as 10 experiments of 10 tosses, recorded as "T" or "H", on 10 lines.
- coin_uniform_100_m1p1.txt, 100 tosses of a fair coin, recorded as -1 or +1, on a single line.
- coin_uniform_100_th.txt, 100 tosses of a fair coin, recorded as "T" or "H", on a single line.
- coin_uniform_10x10_m1p1.txt, 100 tosses of a fair coin, considered as 10 experiments of 10 tosses, recorded as -1 or +1, on 10 lines.
- coin_uniform_10x10_th.txt, 100 tosses of a fair coin, considered as 10 experiments of 10 tosses, recorded as "T" or "H", on 10 lines.

- coin_simulation_test.m, calls all the tests;
- coin_simulation_test_output.txt, the output file.

You can go up one level to the MATLAB source codes.