## Problem 43 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 43: A bar is broken at random in two places. Find the average length of the shortest, middle-est, and longest pieces.
```#!/usr/bin/env ruby TRIALS=100000 # Much like 42, this is pretty trivial stuff. cum_short = 0.0 cum_med = 0.0 cum_long = 0.0 TRIALS.times { b1 = rand() b2 = rand() # put them on a stick reasonably... if (b1 > b2) x = b1 b1 = b2 b2 = x end ls = [b1, b2-b1, 1.0-b2].sort cum_short += ls[0] cum_med += ls[1] cum_long += ls[2] } m_short = cum_short/TRIALS m_med = cum_med/TRIALS m_long = cum_long/TRIALS puts "After #{TRIALS} trials, average lengths:" puts " #{m_short}, #{m_med}, #{m_long}" ```

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.