fork download
  1. # ガウス=ルジャンドルのアルゴリズム
  2. a0 = 1.0
  3. b0 = 0.5**0.5
  4. c0 = 0.5
  5. p0 = 1.0
  6.  
  7. def A(n):
  8. if n==0:
  9. return a0
  10. else:
  11. return (A(n-1) + B(n-1)) / 2
  12.  
  13. def B(n):
  14. if n==0:
  15. return b0
  16. else:
  17. return (A(n-1) * B(n-1))**0.5
  18.  
  19. def C2(n):
  20. if n==0:
  21. return c0
  22. else:
  23. return A(n)**2 - B(n)**2
  24.  
  25. def S(n):
  26. res = 0
  27. for j in range(1,n+1):
  28. res += 2**j * C2(j)
  29. return res
  30.  
  31. N = 3
  32. pi = (A(N) + B(N))**2 / (1 - 2*S(N))
  33. print(pi)
  34.  
Success #stdin #stdout 0.09s 14140KB
stdin
Standard input is empty
stdout
3.1415926535897976