require "acs"
class Body
attr_accessor :mass, :pos, :vel
def initialize(mass = 0, pos = Vector[0,0,0], vel = Vector[0,0,0])
@mass, @pos, @vel = mass, pos, vel
end
end
class NBody
attr_accessor :time, :body
def initialize
@body = []
end
def order_squared_radii
a = []
@body.each{|b| a.push b.pos*b.pos}
a.sort!
end
def quartiles
a = order_squared_radii
n = a.size
r_1 = a[(n/4.0).round - 1]
r_2 = a[(n/2.0).round - 1]
r_3 = a[(n*3/4.0).round - 1]
print "The values of the three quartiles for r(M) are:\n"
print " r(1/4) = "
printf("%.4g\n", r_1)
print " r(1/2) = "
printf("%.4g\n", r_2)
print " r(3/4) = "
printf("%.4g\n", r_3)
end
end
include Math
nb = ACS_IO.acs_read(NBody)
nb.quartiles