Newer
Older
Ruby / taylor.rb
@HIROSE Yuuji HIROSE Yuuji on 24 Sep 2021 527 bytes PI calculation programms added
#!/usr/bin/env ruby
require 'bigdecimal'

goal = (ARGV[0]||9999).to_i
if true
pi4 = 0.0
(0..goal).each do |x|
  pi4 += (-1)**x * 1.0/(2*x+1)
end
printf("pi=%.20f\n", 4*pi4)
printf("ep=%.20f\n", Math::PI-4*pi4)
end

pi4 = 0.0
goal.step(0, -1) do |x|
  pi4 += (-1)**x * 1.0/(2*x+1)
end
printf("pi=%.20f\n", 4*pi4)
printf("ep=%.20f\n", Math::PI-4*pi4)

pi4 = 0
bai = 10**20

(0..goal).each do |i|
  pi4 += (-1)**i * bai/(2*i+1)
  #printf("%d\r", i)
end
printf("pi=%.20f\n", 4.0*pi4/bai)
printf("ep=%.20f\n", Math::PI-4.0*pi4/bai)