## Problem 19 of Monte Carlo solutions to Fifty Challenging Problems...

(This is another part of the Fifty Problems series, a set of example applications of Monte Carlo methods. In each post, I present source code which answers a probabilistic question using simulated models of the underlying system.)

Problem 19: Which is most likely: a) at least 1 six when rolling 6 dice, b) at least 2 sixes in 12 dice rolled, or c) at least 3 sixes of 18 dice?
```#!/usr/bin/env ruby TRIALS=10000 n_ones = 0 n_twos = 0 n_threes = 0 def roll return 1+rand(6) end TRIALS.times do six = (1..6).to_a.map { roll() } twelve = (1..12).to_a.map { roll() } eighteen = (1..18).to_a.map { roll() } n_ones += 1 if six.select { |r| r == 6 }.length >= 1 n_twos += 1 if twelve.select { |r| r == 6 }.length >= 2 n_threes += 1 if eighteen.select { |r| r == 6 }.length >= 3 end puts "After #{TRIALS}, got #{n_ones} / #{n_twos} / #{n_threes}" ```

I've been coding my way through Fifty Challenging Problems in Statistics with Solutions. This post is a part of the Fifty Challenging Problems series.

This was brought to you by Josh Myer. He has other fun things at his homepage.