Math formula python interpretation


I’ve been trying to convert this math formula into python.

So basically the approximation of 1/math.pi.

I tried making this iteration with

import math

N = 132
for k in range(1, N+1):
    print("The N value is",N , end="\r", flush=True)

rec_pi_approximate = (2*math.sqrt(2)/9801) * N * ((math.factorial(4*k) * (1103+26390*k))/((math.factorial(k)**4) * (396**4*k)))

But my values have been weird and I need guidance on how to actually type the formula and make a summation loop for it. Currently I am trying to find the reciprocal of pi with this formula equivalent to 1/math.pi

>Solution :

The idea with the for loop is that you add up a part of the summation on each iteration. So you should keep track of the total sum so far and add to it each time.

import math
N = 132
pi_approximate_inv = 0
for k in range(0, N+1):
    print("The N value is", k)
    pi_approximate_inv += (2*math.sqrt(2)/9801) * ((math.factorial(4*k) * (1103+26390*k))/((math.factorial(k)**4) * (396**(4*k))))
    print("The pi approximate is", 1.0/pi_approximate_inv)

You also missed some parentheses at (396**(4*k)) which I added. Also, it should be print("The N value is", k) (k not N) because it is showing what the summation would be if it stopped right there at k.

Because of floating point precision limits, it appears to max out at N=2.

Leave a Reply Cancel reply