I was entertained by Numberphile’s dice-based generation of an approximate of pi so thought I’d throw together a quick script to try this out:

The results look pretty good:

$ for x in 1 2 3 4 5 ; do python random_vals_pi.py 100000000 100000; done 3.14130098162 3.13774230925 3.14174020697 3.13769082316 3.14274853819

The theory is based on having large integers, so reducing this reduces the accuracy of the approximation:

$ for x in 1 2 3 4 5 ; do python random_vals_pi.py 10 100000; done 3.07962120525 3.0938112197 3.08601801522 3.08910857173 3.08599352408

And similarly reducing the number of samples does the same:

$ for x in 1 2 3 4 5 ; do python random_vals_pi.py 100000000 10; done 2.92770021885 4.472135955 3.46410161514 2.92770021885 3.46410161514