# truel_simulation

truel_simulation, a MATLAB code which simulates N instances of a duel between three players.

Player 1 fires at player 2 or 3, and hits with a probability of P(1). Then, if Player 2 is alive, he fires at Player 1 or 3, hitting with a probability of P(2). Then, if Player 3 is alive, he fires at Player 1 or 2, hitting with a probability of P(3). Play continues until only one duellist remains.

The simulation is intended to estimate the probabilities that a player will survive, and the number of turns required.

### Usage:

[ s, turn_average ] = truel_simulation ( p, duel_num )
where
• p is a vector of length 3 containing the probabilities that each player will hit the target they aim at on any given shot.
• duel_num is the number of duels to simulate.
• s is a vector of length 3 containing the probabilities that each player is the survivor.
• turn_average is the average number of turns to complete the duel.

### Languages:

truel_simulation is available in a MATLAB version and a Python version.

### Related Data and codes:

brownian_motion_simulation, a MATLAB code which simulates Brownian motion in an M-dimensional region.

chuckaluck_simulation, a MATLAB code which simulates the Chuck-a-Luck gambling game.

clock_solitaire_simulation, a MATLAB code which simulates the game of clock solitaire. The deck is dealt into 13 piles of 4 cards each. Repeatedly, the top card a pile is removed, and its rank indicates the next pile to consider. Game continues until an empty pile is reached. The game is won if all piles are empty. The quantity of interest is the probability of winning.

coin_simulation, a MATLAB code which looks at ways of simulating or visualizing the results of many tosses of a fair or biased coin.

dice_simulation, a MATLAB code which simulates N tosses of M dice, making a histogram of the results.

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

fair_dice_simulation, a MATLAB code which simulates N tosses of 2 dice, making a histogram of the results.

fire_simulation, a MATLAB code which simulates a forest fire over a rectangular array of trees, starting at a single random location.

full_deck_simulation, a MATLAB code which simulates a process in which a random card is drawn from a deck of 52, and then replaced, continuing until every card has been seen at least once.

gamblers_ruin_simulation, a MATLAB code which simulates the game of gambler's ruin.

high_card_simulation, a MATLAB code 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 code 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.

jai_alai_simulation, a MATLAB code which simulates matches of jai alai.

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

random_walk_1d_simulation, a MATLAB code which simulates a random walk in a 1-dimensional region.

random_walk_2d_avoid_simulation, a MATLAB code which simulates a self-avoiding random walk in a 2-dimensional region.

random_walk_2d_simulation, a MATLAB code which simulates a random walk in a 2-dimensional region.

random_walk_3d_simulation, a MATLAB code which simulates a random walk in a 3-dimensional region.

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

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

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

snakes_and_ladders_simulation, a MATLAB code which simulates the game of Snakes and Ladders.

traffic_simulation, a MATLAB code which simulates the cars waiting to get through a traffic light.

urn_simulation a MATLAB code which simulates an experiment in which k colored marbles are drawn from an urn containing a total of n marbles. The quantity of interest is the number of marbles of each color.

### Reference:

1. Martin Gardner,
"The Triangular Duel",
The Second Scientific American Book of Mathematical Puzzles and Diversions,
Simon and Schuster, 1961.
2. Marc Kilgour, Steven Brams,
The Truel,
Mathematics Magazine,
Volume 70, Number 5, December 1997, pages 315-326.
3. Paul Nahin,
Duelling Idiots and Other Probability Puzzlers,
Princeton University Press, 2000,
ISBN13: 978-0691009797,
LC: QA273.N29.
4. Martin Shubik,
"Does the Fittest Necessarily Survive?",
in Readings in Game Theory and Political Behavior,
edited by Martin Shubik,
Doubleday, 1954,
LC: H61.S53.

### Source Code:

Last revised on 02 April 2019.