limits_for_pi.sf 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/usr/bin/ruby
  2. # Daniel "Trizen" Șuteu
  3. # Date: 09 January 2017
  4. # Edit: 09 April 2022
  5. # https://github.com/trizen
  6. # Two limits for Pi: an upper and a lower limit.
  7. # The following two inequalities hold:
  8. #
  9. # lower(n) < Pi < upper(n)
  10. #
  11. # for n < Infinity.
  12. # See also:
  13. # https://oeis.org/A280100
  14. # https://oeis.org/A280845
  15. # https://oeis.org/A134374
  16. #
  17. ## 16^n * n * (n!)^4 / ((2*n + 1)!)^2
  18. ## (4^n * n * (n!)^2) / ((2*n + 1)!!)^2
  19. #
  20. func lower(n) {
  21. 4 * (16**n * n * n!**4) / (2*n + 1)!**2
  22. #(4**(n+1) * n * (n!)**2) / ((2*n + 1)!!)**2
  23. }
  24. #
  25. ## 16^n * (n+1)! * (n!)^3 / ((2*n + 1)!)^2
  26. ## (4^n * (n+1) * (n!)^2) / ((2*n + 1)!!)^2
  27. #
  28. func upper(n) {
  29. 4 * (16**n * (n+1)! * n!**3) / (2*n + 1)!**2
  30. #(4**n * (n+1) * (n!)**2) / ((2*n + 1)!!)**2
  31. }
  32. #
  33. ## 16^n * (n!)^4 / (n * ((2*n)!)^2)
  34. ## (2^n * n!)^4 / (n * ((2*n)!)^2)
  35. ## 4^n * (n!)^2 / (n * ((2*n - 1)!!)^2)
  36. #
  37. func upper2(n) {
  38. #16**n * n!**4 / (n * (2*n)!**2)
  39. #4**n * (n!)**2 / (n * ((2*n - 1)!!)**2)
  40. (2**n * n!)**4 / (n * (2*n)!**2)
  41. }
  42. define LIMIT = 1e3
  43. say "Lower bounds:"
  44. say lower(LIMIT)
  45. say "\nUpper bounds:"
  46. say upper(LIMIT)
  47. say upper2(LIMIT)
  48. __END__
  49. Lower bounds:
  50. 3.13923812696691110493340150080310032881057733291
  51. Upper bounds:
  52. 3.14237736509387801603833490230390342913938791024
  53. 3.14237814990340975776611113565427862991447011289