dice_simulation, a Python code which simulates N games in which M dice are thrown and summed.

The user specifies the number of games (throws of the dice) and the number of dice. The code plots a histogram or bar chart of the number of times each score was attained, an estimated probability chart (simply normalizing the frequencies), as well as the average and variance of the scores.

Of course, for 1 die, we expect the histogram to be roughly uniform, for 2 dice, it should have a pyramidal shape, and for higher numbers of dice, the frequency plot should suggest the normal curve.


dice_simulation ( throws, dice )


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


dice_simulation is available in a MATLAB version and an Octave version and a Python version.

Related Data and codes:

python_simulation, a Python code which uses simulation to study card games, contests, and other processes which have a random element. Usually, the purpose is to try to predict the average behavior of the system over many trials.


  1. Paul Nahin,
    Digital Dice: Computational Solutions to Practical Probability Problems,
    Princeton University Press, 2008,
    ISBN13: 978-0-691-12698-2,
    LC: QA273.25.N34.
  2. Dianne OLeary,
    Scientific Computing with Case Studies,
    SIAM, 2008,
    ISBN13: 978-0-898716-66-5,
    LC: QA401.O44.

Source Code:

Last revised on 15 November 2022.