+ 2
I'm trying to calculate the decimal places of pi with Ramanujan's formula. but with this code I'm getting the same output for all values of n, which it shouldn't. from math import sqrt, factorial as f sum=0 n=0 k=(2*sqrt(2)/9801) while n<=100000: sum=sum+((f(4*n))*(1103+(26390*n)))/(((f(n))**4)*(396**(4*n))) y=1/(k*sum) print('%.60f' % y) n=n+1 where am I doing wrong?
4 odpowiedzi
+ 1
If you look at the first two results, you'll notice that they are different. From this you can assume that after n is 2, the change in the sum is negligible. It surprised me how fast it became negligible. Each time n increases, the new result for the infinite series formula shrinks by ^8.
So there is nothing wrong, just that the change gets smaller really fast. You'll need alot more than just 60 decimal places to see the change in all of those results.
If you do that, you may want to increase the precision with modules that handle decimals better. Look at the Decimal module.
0
ok Thanks. I'll see Decimal module.
you look really mature in coding maths calculations like this.
I thought I'm smart. but I was unable to find flaw in this and you did.
Respect for ya👍
0
hi abhishek i have something related to it please help me
0
send me ur email i can send u the question