I watched a video a while back by 3Blue1Brown about a curious way to calculate the digits of pi using the number of collisions between two masses and a wall.
I loved it, and thought it was really interesting, but thought little of it until I saw another video by The Coding Train where he attempted to recreate the simulation.
It worked, but he had to use increasingly larger time steps to be able to achieve greater accuracy.
This can be done better by using linear algebra to calculate when collisions are going to occur, rather than incrementally checking for collisions.
This reduces the computation significantly as you no longer have to test for thousands of collisions, although it still takes about 10 times longer for each extra digit you want to calculate.
Note: I wouldn't recommend going past 7 digits, but it could just be my potato laptop.