Experimental pi

If you have a piece of striped paper and some sticks, you can estimate the value of pi through a simple experiment.

Remember Rudolf Wolf, the Swiss astronomer who created the numbering system for solar cycles? Some time around 1850, Wolf was one of a few people to conduct a compellingly strange experiment: he dropped a needle onto a striped plate five thousand times and recorded where it landed. The result, improbably enough, can be used to estimate the value of pi.

The experiment is known as Buffon’s needle. This is how it works: take a bunch of needles and drop them onto a two-colour striped surface. Count all of the needles that are touching two stripes of different colours – the ones that fall across the stripe barrier. Do this often enough, and you can plug all your data into a formula that produces a reasonable approximation of pi. The more needles you drop, the more accurate it is.

l = length of the needle (assuming it is shorter than the width of the stripes)
n = total number of needles
t = width of each stripe
h = number of needles touching more than one stripe

pi ≈ 2ln / th

I went ahead and did a short version of this experiment myself. I snapped six wooden kebab skewers in half (l=12.5cm) and dropped them on my striped kitchen floor (t=25cm). I dropped twelve half skewers thirteen times over (n=156) and I recorded how many of those skewers crossed stripes (h=49). Plug all those numbers into the formula above, and the result was 3.18 (to two decimal places). That’s pretty damn close to pi’s 3.14.

So what’s going on here? How did pi get involved in this probability calculation anyway? Well, the first link below gets into the math in great detail, but it may help if you think of each needle as forming a little circle of probability. Say that this hypothetical needle lands close to the line between stripes. If the needle lines up with the stripes (e.g. both are vertical), then that needle won’t cross the line. But if the needle lands askew, it might cross the line. It all depends where on the circle it lands:

Buffon's needle
GTBacchus, CC BY-SA 3.0, via Wikimedia Commons

That black line is an edge between stripes. The blue needle doesn’t cross stripes, but the red needle (rotated a few degrees) does. In this diagram, any needle in the grey zone crosses the stripes but any needle in the white zone does not. To calculate the probability of a needle crossing the line, you need pi. And, therefore, if you already know the approximate probability… well, then you can approximate pi.

2 Replies to “Experimental pi”

  1. I like the following proof.

    Consider needles of any length, and any (planar) shape. Instead of asking “what’s the probability that my weird needle N crosses a line” ask “how many lines do I expect it to cross, on average?” What’s special about the original length-1 needle is that those two questions have the same answer (since that needle touches two lines 0% of the time), but for many needles this isn’t so.

    Next observe that if you solder two needles N and M together, call that NM, then their expected crossing numbers E(N), E(M) add up: E(NM) = E(N) + E(M). With that and a little bit of handwaving you can figure out that E(N) = c * length(N) for some constant c.

    Finally, consider N to be a circle of diameter 1. Then E(N) is pretty obviously 2. Hence c = 2/pi, and E(the original needle) = 2/pi * 1 too.

  2. Turns out that proof is from 1860, and is called “Buffon’s noodle”.
    https://en.wikipedia.org/wiki/Buffon%27s_noodle
    There is a very similar proof concerning the average area of the shadow of a given convex body. Again one proves that the answer is controlled by some universal constant, and reduces to the rotationally symmetric case.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s