## Problem 42 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 42: If a stick is broken in two at random, what is the average length of the shorter half? What is the average ratio of the shorter side to the longer side?

#!/usr/bin/env ruby
TRIALS = 1000000
# This is pretty trivial: we just choose a breakpoint somewhere
# along a unit-length stick and keep track of the total
# length of the short ends, and the ratio for (b)
cum_short_len = 0.0
cum_ratio = 0.0
TRIALS.times {
breakpoint = rand()
breakpoint = 1.0 - breakpoint if breakpoint > 0.5
cum_short_len += breakpoint
cum_ratio += breakpoint / (1.0 - breakpoint)
}
mean = cum_short_len / TRIALS
mean_ratio = cum_ratio / TRIALS
puts "After #{TRIALS} attempts, mean(short_len) = #{mean}"
puts " mean(ratio) = #{mean_ratio}"

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.