Calculating Pi using Python – Gauss-Legendre and Monte Carlo methods – #piday 2024

Let’s celebrate #piday in this appropriately short video by writing some #python programs to calculate Pi.

The first method uses something called the Gauss-Legendre method. It works by iteratively refining an approximation of Pi, generating the answer digit by digit.

When writing code to calculate Pi we run into issues trying to store the calculated value. A floating point or double precision float will only store so many bits. It’s like fractal zoom programs where there is a maximum depth due to the computer being unable to store the values being used.

Generating Pi digit by digit seems to get around this problem for the most part. Although I’m sure the intermediate values stored in the variables will eventually overflow.

The second way uses a statistical method that you’ve unknowingly seen if you’ve ever used Blender. Based on the Monte Carlo statistical methods, there is a way to calculate Pi by simply drawing a circle inside a square and randomly filling it with points.

Dividing the number of points inside the circle by the number of points plotted, and multiplying the result by four gives an approximation of Pi.

Coding this is quite easy because it doesn’t need to be done visually. Working out whether a point is inside a circle is a simple piece of maths.

Interestingly if we draw all the points on the screen and colour them, the result draws an arc.

But since Pi is an irrational number, we could just round it down to 3 and use that. It’s probably close enough. Although saying this near mathematicians makes them go all irrational too.

Happy Pi day!

Gauss-legendre python code
Monte-Carlo method for calculating pi
Raspberry Pi Pico 3D Model